当我运行我的程序时,我的异常低于
java -jar MQprogram.jar
我已经正确设置了classpath,这是指所有必需的jar, “com.ibm.mq.jmqi.jar”也在具有MQException的类路径中引用。
`Exception in thread "main" java.lang.NoClassDefFoundError: com/ibm/mq/MQException Caused by: java.lang.ClassNotFoundException: com.ibm.mq.MQException at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClassInternal(Unknown Source) Could not find the main class: com.test.bo.MQprogram. Program will exit. `
我还不清楚bug在哪里。
答案 0 :(得分:3)
这几乎总是由不完整的客户端安装和/或CLASSPATH问题的组合引起的。许多人抓住jar文件而不是执行完整安装,并不一定能获得所有这些文件。有时他们只是不断查找jar文件并抓住它们,而不考虑不同的版本。从V7.0开始,IBM执行了Java / JMS类的主要重构,并从那时起进行了一些更新。从V7.0.1开始,WMQ可以安装到任意目录路径和服务器上的多个安装。这意味着现在可以有多个JRE / s,多个客户端安装等。这对CLASSPATH影响不大,但确实改变了依赖性,例如NLS支持,跟踪以及Java类依赖/交互的其他事情。 / p>
建议安装完整的WMQ客户端并将CLASSPATH指向安装目录。如果那是不可能的,那么在某个地方安装一个完整的客户端 并从已知良好的安装中获取完整的jar集。那么至少你知道你有相同的版本等等。
如果您决定从IBM的分发介质安装完整的客户端,您将获得一些其他功能,例如诊断和低级跟踪。它还确保可以应用维护。例如,您遇到的问题已在修订包中得到纠正,您只需在现有客户端安装的顶部安装修订包即可。如果您拥有的只是jar文件,则无法安装Fix Pack。
WMQ客户端以SupportPacs的形式提供。您可以下载以下其中一项:
请务必使用信息中心获取您正在使用的客户端版本!
答案 1 :(得分:1)
这意味着您的CLASSPATH中没有包含com.ibm.mq.MQException
的.class文件的JAR。
这是Java 101。
This解释了该怎么做。
找到此链接的是Google 101。