我正在尝试运行这里找到的hello world示例
我添加了activemq-all-5.5.1.jar到已经存在的库
使用以下警告成功构建
警告:[options] bootstrap类路径没有与-source 1.6一起设置
但是它没有运行,我得到这个异常
线程" thread -0"异常java.lang.ClassFormatError:方法中没有代码属性,类文件javax/jms/JMSException在java.lang.ClassLoader.defineClass1(本机方法)java.lang.ClassLoader.defineClass (ClassLoader.java: 791)java.security.SecureClassLoader.defineClass (SecureClassLoader.java: 142)java.net.URLClassLoader.defineClass (URLClassLoader.java: 449)java.net.URLClassLoader.access 100美元(URLClassLoader.java: 71)在java.net.URLClassLoader 1.美元运行(URLClassLoader.java: 361)在java.net.URLClassLoader 1.美元运行(URLClassLoader.java: 355)在java.security.AccessController。doPrivileged(本地方法)java.net.URLClassLoader.findClass (URLClassLoader.java: 354)java.lang.ClassLoader.loadClass (ClassLoader.java: 423)sun.misc.Launcher AppClassLoader.loadClass美元(Launcher.java: 308)java.lang.ClassLoader.loadClass (ClassLoader.java: 356)hw_testing.HW_testing HelloWorldProducer.run美元(HW_testing.java: 69)java.lang.Thread.run (Thread.java: 722)
线程" thread -1"异常java.lang.ClassFormatError:方法中没有代码属性,类文件javax/jms/JMSException在java.lang.ClassLoader.defineClass1(本机方法)java.lang.ClassLoader.defineClass (ClassLoader.java: 791)java.security.SecureClassLoader.defineClass (SecureClassLoader.java: 142)java.net.URLClassLoader.defineClass (URLClassLoader.java: 449)java.net.URLClassLoader.access 100美元(URLClassLoader.java: 71)在java.net.URLClassLoader 1.美元运行(URLClassLoader.java: 361)在java.net.URLClassLoader 1.美元运行(URLClassLoader.java: 355)在java.security.AccessController。doPrivileged(本地方法)java.net.URLClassLoader.findClass (URLClassLoader.java: 354)java.lang.ClassLoader.loadClass (ClassLoader.java: 423)sun.misc.Launcher AppClassLoader.loadClass美元(Launcher.java: 308)java.lang.ClassLoader.loadClass (ClassLoader.java: 356)hw_testing.HW_testing HelloWorldProducer.run美元(HW_testing.java: 69)java.lang.Thread.run (Thread.java: 722)
…线程3和线程4也有同样的异常
有谁能帮我一下吗?这是一个依赖关系的问题(javax/jms/JMSException
在多个jar中),例如在javaee-api
(5或6)中发生-这个jar缺少几个类的一些方法体。activemq-all-5.5.1.jar
也包含javax.jms.JMSException
,但这些类别不相同。如果javaee-api
在classpath中先出现,您将得到java.lang.ClassFormatError
.
如果您使用maven,将javaee-api
放在 activemq-all
之后(或删除它)。一般来说,删除不必要的依赖项。