1. ホーム
  2. java

[解決済み】「java -cp」と「java -jar」の違い?

2022-01-24 13:49:25

質問

でJavaアプリケーションを実行するのと何が違うのですか?
java -cp CLASSPATHjava -jar JAR_FILE_PATH ? Javaアプリケーションを実行するのに、どちらか一方が好ましいのでしょうか?つまり、これらの方法のうちどれがJVMにとってより高価なのでしょうか(そのマシンリソースの使用量によると)?

アプリケーションを実行しようとしている間、どちらがJVMに多くのスレッドを発生させますか?

解決方法は?

私は、Javaアプリケーションを起動するには、落とし穴が少ないという理由で、最初のバージョンを好みます("welcome to classpath hell")。2番目のバージョンは、実行可能なjarファイルを必要とし、そのアプリケーションのクラスパスはjarのマニフェストの中で定義されなければなりません(他のすべてのクラスパス宣言は黙って無視されます...)。つまり、2番目のバージョンでは、jarを調べ、マニフェストを読み、jarが保存されている場所からクラスパスのエントリが有効かどうかを見つけようとしなければなりません...。それは回避可能です。

どちらのバージョンでも、パフォーマンスの有利不利はないと思っています。メインスレッドに使用するクラスと、ライブラリの場所をjvmに教えているだけです。