Eclipse
プロジェクトをJAR
実行可能ファイルにエクスポートしようとしています。
このプロジェクトには、2 つの IBM パッケージcom.ibm.mq.jar
と個人用ライブラリーが含まれています。com.ibm.mq.jmqi.jar
Eclipse
実行ボタンまたはコマンドでアプリケーションを実行してもエラーはありません:java MainClass
プロジェクトの bin フォルダーから。
残念ながら、jar が作成され ([ファイル] > [エクスポート] > [Runnable Jar])、起動さjava -jar MainClass.jar
れると、次の結果が得られます。
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
Caused by: java.lang.NoClassDefFoundError: javax/resource/ResourceException
at com.ibm.mq.MQEnvironment.<clinit>(MQEnvironment.java:520)
at MQtestMain.<init>(MQtestMain.java:38)
at MQtestMain.main(MQtestMain.java:18)
... 5 more
Caused by: java.lang.ClassNotFoundException: javax.resource.ResourceException
at java.net.URLClassLoader$1.run(Unknown Source)
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 java.lang.ClassLoader.loadClass(Unknown Source)
... 8 more
Fat Jar
エクスポート用のプラグインも試しましたが、結果java -jar MainClass_fat.jar
は非常に似ています。
Exception in thread "main" java.lang.NoClassDefFoundError: javax/resource/ResourceException
at com.ibm.mq.MQEnvironment.<clinit>(MQEnvironment.java:520)
at MQtestMain.<init>(MQtestMain.java:38)
at MQtestMain.main(MQtestMain.java:18)
Caused by: java.lang.ClassNotFoundException: javax.resource.ResourceException
at java.net.URLClassLoader$1.run(Unknown Source)
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)
... 3 more
Eclipse
プロジェクトをライブラリJar
を含むファイルにエクスポートして実行する正しい方法はどれですか?IBM MQ Classes for Java
更新 1:不必要ですが、ソリューションに到達するのに非常に役立ちます。
統合スタッフによる提案:プロジェクトに含まれる IBM クラス jar のすべての依存関係をインポートするために、Java EE インストールからファイルを
含めます。javaee.jar
解決策:すべての IBM クラスの Java 依存関係を考慮してください。
カスタム ライブラリにすべてのjar
ファイルをC:\...\IBM\WebSphere MQ\java\lib
エクスポートから実行可能な Jar としてインポートしますEclipse
(Fat Jar プラグインも必要ありません) 。