【问题标题】:zookeeper: Unsupported major.minor version 52.0zookeeper:不支持的major.minor 52.0版
【发布时间】:2020-04-20 06:09:28
【问题描述】:

我正在尝试按照 kafka 网站上的指南进行操作: https://kafka.apache.org/quickstart 但是当我使用 kafka_2.12-2.5.0 并尝试启动 zookeeper 时,我得到:

$ bin/zookeeper-server-start.sh  config/zookeeper.properties
    Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/zookeeper/server/quorum/QuorumPeerMain : Unsupported major.minor version 52.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

我正在使用redhat7.1。 尝试更新java:

$ sudo yum install java-1.8.0-openjdk-devel
Loaded plugins: langpacks, product-id, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
...
Package 1:java-1.8.0-openjdk-devel-1.8.0.31-2.b13.el7.x86_64 already installed and latest version
Nothing to do

我应该使用什么版本的 Java?

【问题讨论】:

    标签: java apache-zookeeper unsupported-class-version


    【解决方案1】:

    这个 '52.0' 意味着它是用 1.8 jdk 编译的,但你正在尝试主要用较低的 jdk 运行(或者甚至非常不兼容?)。 默认情况下使用 JAVA_HOME 环境变量,所以希望您已经检查了基础知识:java_home、java --version... 甚至在运行指向正确的 32/64 java 之前强制导出 java_home

    【讨论】:

    • 我看到java版本是“1.7.0_75”,但是我确实yum安装了1.8...如何强制它使用1.8?
    • 首先确认你已经实际安装了jdk 1.8以及它在哪个路径(/usr/lib/jvm/java-1.8.0-openjdk -... ??)另外检查你的/home /username/.bashrc 查看是否有默认导出 JAVA_HOME = "/path/to/oldjava7/home" 然后考虑覆盖该路径,因此 1.8 将是现在所有人的默认值,或者只是您当前的会话,之前启动kafka,只需手动执行导出命令将JAVA_HOME覆盖到指向1.8
    • 非常感谢您抽出宝贵时间。我最近有点忙,所以我没有机会继续讨论这个问题。但一有机会,我会尽快通知您。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-24
    • 2016-12-28
    • 2018-08-24
    • 1970-01-01
    相关资源
    最近更新 更多