簡體   English   中英

線程“main”中的異常java.lang.NoClassDefFoundError:com / ibm / mq / MQException

[英]Exception in thread “main” 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.
`

我還不清楚這個bug在哪里。

這幾乎總是由不完整的客戶端安裝和/或CLASSPATH問題的組合引起的。 許多人抓住jar文件而不是執行完整安裝,並不一定能獲得所有這些文件。 有時他們只是不斷查找jar文件並抓住它們,而不考慮不同的版本。 從V7.0開始,IBM執行了Java / JMS類的主要重構,並從那時起進行了一些更新。 從V7.0.1開始,WMQ可以安裝到任意目錄路徑和服務器上的多個安裝。 這意味着現在可以有多個JRE / s,多個客戶端安裝等。這對CLASSPATH影響不大,但確實改變了依賴性,例如NLS支持,跟蹤以及Java類依賴/交互的其他內容。

建議安裝完整的WMQ客戶端並將CLASSPATH指向安裝目錄。 如果那是不可能的,那么在某處安裝一個完整的客戶端並從已知良好的安裝中獲取完整的罐子組。 那么至少你知道你有相同的版本,等等。

如果您決定從IBM的分發介質安裝完整客戶端,您將獲得一些其他功能,例如診斷和低級跟蹤。 它還確保可以應用維護。 例如,您遇到的問題已在修訂包中得到糾正,您只需在現有客戶端安裝的頂部安裝修訂包即可。 如果您擁有的只是jar文件,則不會安裝Fix Pack。

WMQ客戶端可用作SupportPac 您可以下載以下其中一項:

請務必使用Infocenter作為您正在使用的客戶端版本!

這意味着您的CLASSPATH中沒有包含com.ibm.mq.MQException的.class文件的JAR。

這是Java 101。

解釋了怎么做。

查找此鏈接的是Google 101。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM