我正在尝试运行hello world示例found here
我已将 activemq-all-5.5.1.jar 添加到已经
的库中使用以下警告成功构建
警告:[options] bootstrap类路径未与-source 1.6一起设置
但它没有运行,我得到了这个例外
线程“Thread-0”中的异常java.lang.ClassFormatError:在类文件javax / jms / JMSException中非本地或抽象的方法中缺少Code属性 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:791) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 在java.net.URLClassLoader.access $ 100(URLClassLoader.java:71) 在java.net.URLClassLoader $ 1.run(URLClassLoader.java:361) 在java.net.URLClassLoader $ 1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) 在java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:423) at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:356) at 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 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:791) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 在java.net.URLClassLoader.access $ 100(URLClassLoader.java:71) 在java.net.URLClassLoader $ 1.run(URLClassLoader.java:361) 在java.net.URLClassLoader $ 1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) 在java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:423) at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:356) at hw_testing.HW_testing $ HelloWorldProducer.run(HW_testing.java:69) 在java.lang.Thread.run(Thread.java:722)
... 线程3和4的相同例外
有人可以帮帮我吗?
答案 0 :(得分:12)
这是依赖关系的问题(javax/jms/JMSException
在多个罐子中),例如,与javaee-api
(5或6) - 这个jar缺少一些类的方法体。 activemq-all-5.5.1.jar
也包含javax.jms.JMSException
但这些类并不相同。如果{class 1}}在classpath中排在第一位,您将获得javaee-api
。
如果您使用maven,请在 java.lang.ClassFormatError
之后添加javaee-api
(或将其删除)。通常,删除不必要的依赖项。