0

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 プラグインも必要ありません) 。

4

2 に答える 2

2

javax.resource.ResourceException は Java EE API の一部です。

あなたの Eclipse プロジェクトは、おそらく、この jar がターゲット環境で使用可能になるか、アプリケーションと一緒にパッケージ化するための jar のリストに java-ee API がないことを前提としています。

どのビルドツールを使用していますか? Maven または Ant、または外部ツールを使用せずに Eclipse 自体にパッケージ化していますか?

この問題を解決するには、Java EE API jar が実行可能 jar に含まれていることを確認する必要があります。

于 2012-09-01T08:23:27.230 に答える
0

解決策:すべての IBM クラスの Java 依存関係を考慮してください。

プロジェクトに含まれる IBM クラス jar のすべての依存関係をインポートするために、Java EE インストールからファイルを含めることを提案する統合スタッフが非常に役立つことがわかりました。 これはエラーを解決しませんが、私を解決策に導きました:javaee.jar

カスタム ライブラリにすべてjarファイルをC:\...\IBM\WebSphere MQ\java\lib
エクスポートから実行可能な Jar としてインポートしますEclipse(Fat Jar プラグインも必要ありません) 。

于 2012-09-03T06:06:06.813 に答える