4

「CreateProcess error=87」の問題に遭遇し、ここで解決策を見つけました。 アプリケーションを起動できません (CreateProcess エラー = 87)、短縮クラスパスの回避策を使用できません

私はすでにプロジェクトをルート ディレクトリに移動しましたが、それでもクラスパスが長すぎるという問題があり、私のプロジェクトは Maven スタイルであり、依存関係を削除できません。クラスパスを短縮する他の方法はありますか?

4

1 に答える 1

1

私たちのプロジェクトでも同じ問題がありました。面倒なのは、クラスパス上のすべての jar を明示的にリストする必要があることです。

ディレクトリのリストを引数として取るカスタムランチャークラスを実装することで、この問題を回避しました。ランチャー プログラムでは、これらのディレクトリ内の jar のリストを読み取り、クラスローダーを作成して、それに jar のリストを提供できます。次に、クラスローダーを使用して実際のプログラムを実行します。

もちろん、ランチャーは必要な jar のリストを別の方法で決定することもできます。たとえば、ファイルで提供したり、好きな方法で提供したりできます。このソリューションの鍵は、実際のプログラムで使用されるクラスパス全体ではなく、ランチャーに必要なクラスパスのみをコマンド ラインで指定する必要があることです。

これが役立つことを願っています..

于 2013-05-11T09:00:51.680 に答える