コマンド "java -jar MyFile.jar" で JAR ファイルを実行する場合、これは必須ですクラスパスの要件を理解するため。 「-jar」オプションは、実行されるメインクラスが JAR ファイルに含まれていることを示します。一方、「-cp」は追加のクラスパスを指定するために使用されます。
指定されたシナリオで発生したエラーは、おそらく次の原因によるものです。 「-jar」オプションと「-cp」オプションの組み合わせ。回答で説明されているように、これらのオプションは相互に排他的です。両方のオプションを同時に使用すると、Java が解釈できないあいまいなコマンドが生成されます。
この問題を解決するには、ユーザーには 2 つのオプションがあります。
オプション 1: 使用するManifest-Class-Path 属性:
このアプローチでは、JAR ファイルのマニフェストに、クラスパス上で必要な JAR を指定する「Class-Path」属性が含まれます。これにより、「-cp」オプションが不要になります。
オプション 2: 「-cp」で完全なクラスパスを指定します:
Forこのオプションを使用すると、コマンドは「java -cp 'MyProgram.jar:libs/*' main.Main」になります。ここで、「-cp」はメイン JAR とその依存関係を含む完全なクラスパスを指定します。一方、「main.Main」クラスの明示的な名前付けにより、このクラスがエントリ ポイントとして実行されることが保証されます。
代わりに、Ant を活用することもできます。 「マニフェスト アプローチ」の場合、「
一方、「クラスパス アプローチ」の場合、完全なクラスパスは、JAR ファイルおよび明示的な名前付けと組み合わせて「-cp」オプションを使用して指定されます。メインクラスの。この方法は、ターゲット環境がマニフェストの「Class-Path」属性を認識しない場合に適しています。
以上が追加のクラスパス オプションを使用して JAR ファイルを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。