编程语言
首页 > 编程语言> > 线程“主”中的异常java.lang.NoClassDefFoundError:com / ibm / mq / MQException

线程“主”中的异常java.lang.NoClassDefFoundError:com / ibm / mq / MQException

作者:互联网

当我按如下方式运行程序时,我遇到了异常,

java -jar MQprogram.jar

我已经正确设置了classpath,它引用了所有必需的jar,
在具有MQException的类路径中也引用了“ com.ibm.mq.jmqi.jar”.


`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.
`

我仍然不清楚错误在哪里.

解决方法:

这几乎总是由客户端安装不完整和/或CLASSPATH问题共同引起的.许多人抓住了jar文件,而不是执行完整的安装,并不一定会全部获得它们.有时,他们只是继续查找jar文件并抓住它们,而没有考虑不同版本.从V7.0开始,IBM对Java / JMS类进行了主要的重构,此后也进行了一些更新.从V7.0.1开始,WMQ可以安装到任意目录路径,并且可以在服务器上多次安装.这意味着现在可以有多个JRE / s,可以安装多个客户端,等等.这对CLASSPATH的影响不大,但是确实改变了依赖性,例如NLS支持,跟踪以及Java类依赖/交互的其他东西.

建议安装完整的WMQ客户端,并将CLASSPATH指向安装目录.如果不可能,那么在某个地方安装一个完整的客户端,然后从已知有效的安装中获取全套jar.然后,至少您知道所有版本都相同,依此类推.

如果您决定从IBM的分发介质安装完整的客户端,则会获得一些附加功能,例如诊断和低级跟踪.它还确保可以进行维护.例如,您有一个在修订包中得到纠正的问题,您只需在现有客户端安装之上安装修订包.如果您只有jar文件,则不会安装修订包.

WMQ客户端的可用名称为SupportPacs.您可以下载以下之一:

> WMQ V7.0客户端== SupportPac MQC7
> WMQ V7.1客户端== SupportPac MQC71
> WMQ V7.5客户端== SupportPac MQC75

请确保对所使用的客户端版本使用信息中心!

> WMQ V7.0 Infocenter
> WMQ V7.1 Infocenter
> WMQ V7.5 Infocenter

标签:ibm-mq,java
来源: https://codeday.me/bug/20191031/1977344.html