3

当我如下运行我的程序时,我遇到了异常,

java -jar MQprogram.jar

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

`线程“主”java.lang.NoClassDefFoundError 中的异常:com/ibm/mq/MQException
引起:java.lang.ClassNotFoundException:com.ibm.mq.MQException
        在 java.net.URLClassLoader$1.run(未知来源)
        在 java.security.AccessController.doPrivileged(本机方法)
        在 java.net.URLClassLoader.findClass(未知来源)
        在 java.lang.ClassLoader.loadClass(未知来源)
        在 sun.misc.Launcher$AppClassLoader.loadClass(未知来源)
        在 java.lang.ClassLoader.loadClass(未知来源)
        在 java.lang.ClassLoader.loadClassInternal(未知来源)
找不到主类:com.test.bo.MQprogram。程序将会退出。
`

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

4

2 回答 2

3

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

建议安装完整的 WMQ 客户端并将 CLASSPATH 指向安装目录。如果这是不可能的,那么在某个地方安装一个完整的客户端并从已知良好的安装中获取完整的 jar 集。然后至少你知道你有所有相同的版本,等等。

如果您决定从 IBM 的分发媒体安装完整的客户端,您将获得一些附加功能,例如诊断和低级跟踪。它还确保可以应用维护。例如,您有一个在 Fix Pack 中得到纠正的问题,您只需在现有客户端安装之上安装 Fix Pack。如果您只有 jar 文件,则不会安装 Fix Pack。

WMQ 客户端以SupportPacs的形式提供。您可以下载以下内容之一:

请务必将信息中心用于您正在使用的客户端版本!

于 2012-11-14T04:13:28.220 回答
1

这意味着您的 CLASSPATH 中没有包含 .class 文件的 JAR com.ibm.mq.MQException

这是 Java 101。

解释了如何处理它。

找到这个链接是谷歌 101。

于 2012-11-13T23:57:26.373 回答