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 で (不明なソース)
        at sun.misc.Launcher$AppClassLoader.loadClass (不明なソース)
        java.lang.ClassLoader.loadClass で (不明なソース)
        java.lang.ClassLoader.loadClassInternal で (不明なソース)
メイン クラス com.test.bo.MQprogram が見つかりませんでした。プログラムは終了します。
`

バグがどこにあるかはまだわかりません。

4

2 に答える 2

3

これは、ほとんどの場合、不完全なクライアント インストールおよび/または CLASSPATH の問題の組み合わせが原因で発生します。多くの人は、完全なインストールを実行するのではなく、jar ファイルを取得しますが、必ずしもすべてを取得するとは限りません。場合によっては、さまざまなバージョンに関係なく、単に jar ファイルを検索して取得し続けることがあります。IBM は、V7.0 の時点で Java/JMS クラスの主要なリファクタリングを実行し、それ以降もいくつかの更新を行いました。V7.0.1 の時点で、WMQ は任意のディレクトリー・パスにインストールでき、サーバー上に複数インストールできます。これは、複数の JRE/s、複数のクライアント インストールなどが存在できることを意味します。これは CLASSPATH にそれほど影響を与えませんでしたが、NLS サポート、トレース、および Java クラスが依存/相互作用するその他のものなどの依存関係を変更しました。

完全な WMQ クライアントをインストールし、CLASSPATH をインストール ディレクトリに指定することをお勧めします。それが不可能な場合は、完全なクライアントをどこかにインストールし、既知の正常なインストールから完全な jar セットを取得します。次に、少なくとも、すべて同じバージョンなどがあることを知っています。

IBM の配布メディアから完全なクライアントをインストールする場合は、診断や低レベルのトレースなど、いくつかの追加機能を利用できます。また、メンテナンスも確実に適用できます。たとえば、Fix Pack で修正される問題がある場合、既存のクライアント インストールの上に Fix Pack をインストールするだけです。jar ファイルしかない場合、フィックスパックはインストールされません。

WMQ クライアントは SupportPac として利用できます。次のいずれかをダウンロードできます。

使用しているクライアントのバージョンのインフォセンターを必ず使用してください!

于 2012-11-14T04:13:28.220 に答える
1

の .class ファイルを含む CLASSPATH に JAR がないことを意味しますcom.ibm.mq.MQException

これは Java 101 です。

これは、それについて何をすべきかを説明しています。

このリンクを見つけることが Google 101 でした。

于 2012-11-13T23:57:26.373 に答える