1、Unsupported major.minor version 51.0 错误
截图如下:
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/kafka/common/utils/Utils : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at kafka.utils.CoreUtils$.createObject(CoreUtils.scala:221)
at kafka.producer.Producer.<init>(Producer.scala:61)
at kafka.javaapi.producer.Producer.<init>(Producer.scala:26)
at MyProducer.main(MyProducer.java:16)
major.minor version 51.0 对应的是 jdk1.7 , 对应表如下:
错误原因分析:
出现上述错误是因为:引进jar包使用jdk1.7编译,而使用此jar包的工程jdk版本为jdk1.6,所以会出现版本不支持。
解决方案:更换对应的版本,使之匹配。
另一种可能的原因是:编译和运行程序用的JDK不一致导致,由于我当时既安装了JDK1.6 ,又安装了JDK1.8,所以出现了编译和运行用的JDK不一样。
但是奇怪的是别的程序是可以运行的,运行kafka的官网生产者例子跑不起来,我修改了编译和运行都是JDk1.6还是上面的报错。有的帖子说,这个原因也会导致,我是先修改这个问题,后又跟换jar包,解决的。
2、Exception in thread "main" java.lang.Error: Unresolved compilation probles:
producer cannot be resolved to a type...
截图如下:
错误原因分析;
由于初次跑客户端代码,不知道要用到哪些jar包,为了快速看到客户端的效果,所以不管三七二十一把j全部ar包丢进去了,其实还有一些以asc结尾的文件也被丢进去了 ,把这样的文件从路径移除即可。