“线程中的异常”;“主要”;java.lang.NoClassDefFoundError:com/ibm/mq/MQException
当我按如下方式运行程序时,出现以下异常: java-jar MQprogram.jar 我已经正确地设置了类路径,它引用了所有必需的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. ` `线程“main”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。程序将退出。 `“线程中的异常”;“主要”;java.lang.NoClassDefFoundError:com/ibm/mq/MQException,java,ibm-mq,Java,Ibm Mq,当我按如下方式运行程序时,出现以下异常: java-jar MQprogram.jar 我已经正确地设置了类路径,它引用了所有必需的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
我还不清楚虫子在哪里 这意味着类路径中没有包含
com.ibm.mq.MQException
的.class文件的JAR
这是Java101
解释如何处理它
找到此链接的是Google 101。这几乎总是由客户端安装不完整和/或类路径问题造成的。许多人获取jar文件而不是执行完整的安装,并且不一定获取所有jar文件。有时他们只是不断地查找jar文件并抓取它们,而不考虑不同的版本。从V7.0开始,IBM对Java/JMS类进行了重大重构,并从那时起进行了一些更新。从V7.0.1开始,WMQ可以安装到任意目录路径,也可以在服务器上多次安装。这意味着现在可以有多个JRE/s、多个客户端安装等。这对类路径没有太大影响,但确实改变了依赖关系,例如NLS支持、跟踪和Java类依赖/与之交互的其他内容 建议安装完整的WMQ客户机,并将类路径指向安装目录。如果这是不可能的,那么在某个地方安装一个完整的客户端,并从已知良好的安装中获取完整的JAR集。那么至少你知道你有相同的版本,等等 如果您决定从IBM的分发介质安装完整的客户机,您将获得一些附加功能,例如诊断和低级跟踪。它还确保可以进行维护。例如,您有一个问题在修复包中得到了纠正,您只需在现有客户端安装的基础上安装修复包。如果您只有jar文件,则不会安装修复包 WMQ客户机可按以下方式提供。您可以下载以下内容之一:
- WMQ V7.0客户端==
- WMQ V7.1客户端==
- WMQ V7.5客户端==
setjmsenv
(或setjmsenv64
)脚本的源代码,它是否运行正常?要么配置不同,要么代码调用V7.0.1.7中不存在的类,要么两者都调用。setjmsenv
至少可以排除配置问题。确保源代码,而不仅仅是运行它。i、 e.do/setjmsenv
而不是简单地/setjmsenv
。是的。我也试过运行setjmsenv。其他代码运行正常。我没有从我的异常中再添加一行,我现在已经添加了它。它说找不到主类。任何线索??通常这会指向jar文件中的坏文件夹结构。然而,在这种情况下,异常是从主线程中抛出的。显然,Java找到了主类,但该类似乎找不到自己。我会查找范围不正确的变量或方法。我尝试了另一种方法。。只有当我将其作为jar文件运行时,才会出现此异常。。如果我的文件夹中有我所有的*java和*class文件,那么我的程序运行良好。有什么我在罐子里漏掉的东西吗???