0

jar ファイルと 1 つのメイン クラスを 1 つの jar にマージしています。問題は、私のメイン クラスがこれらの jar を使用していることです。それが 1 つの jar にあると、クラス定義が見つからないだけでスローされます。クラスに瓶の中の瓶を見せる方法は?

4

1 に答える 1

1

JavaLauncher$AppClassLoaderは、Jar 内の Jar からクラスをロードする方法を知りません。必要なのは、ファイルシステムの jar からではなく、アーカイブ内の jar からクラスとリソースをロードする方法を知っているカスタム クラスローダーです。

one-jarを見ることができます。これにより、Java アプリケーションをその依存関係の Jar と共に単一の実行可能な Jar ファイルにパッケージ化できます。

JarClassLoader は、トップ JAR およびトップ JAR 内の JAR から、クラス、ネイティブ ライブラリ、およびリソースをロードすることもできます。

別の解決策 (非常に見苦しいもの) は、jar 内の JAR コンテンツを爆発させることです。

于 2013-08-02T12:43:58.087 に答える