Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“线程中的异常”;“主要”;java.lang.NoClassDefFoundError:com/ibm/mq/MQException_Java_Ibm Mq - Fatal编程技术网

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

“线程中的异常”;“主要”;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

当我按如下方式运行程序时,出现以下异常:

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。程序将退出。 `
我还不清楚虫子在哪里

这意味着类路径中没有包含
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客户端==
请确保将信息中心用于您正在使用的客户端版本


我在机器上安装了MQv7.0.1.7。在这台机器上运行的MQ java程序也没有任何错误。您是否协调了工作代码和非工作代码之间的差异?如果先获取
setjmsenv
(或
setjmsenv64
)脚本的源代码,它是否运行正常?要么配置不同,要么代码调用V7.0.1.7中不存在的类,要么两者都调用。
setjmsenv
至少可以排除配置问题。确保源代码,而不仅仅是运行它。i、 e.do
/setjmsenv
而不是简单地
/setjmsenv
。是的。我也试过运行setjmsenv。其他代码运行正常。我没有从我的异常中再添加一行,我现在已经添加了它。它说找不到主类。任何线索??通常这会指向jar文件中的坏文件夹结构。然而,在这种情况下,异常是从主线程中抛出的。显然,Java找到了主类,但该类似乎找不到自己。我会查找范围不正确的变量或方法。我尝试了另一种方法。。只有当我将其作为jar文件运行时,才会出现此异常。。如果我的文件夹中有我所有的*java和*class文件,那么我的程序运行良好。有什么我在罐子里漏掉的东西吗???