私は、既存のJavaプログラム(もちろん自分で作成しませんでした)が既存のjarでどのようにコンパイルされたかを理解しようとしています
私はTest.java
(元のソースファイル)を持っています:
package Demo;
//import classes from jars here etc...
public class Test {
public static void main(String args[]) {
etc...
}
}
これで、他に 2 つの jar ができました。
file1.jar
file2.jar
Demo.jar
それを実行するためのバッチ スクリプトがあります。
@echo off
set CLASSPATH="file1.jar";"file2.jar";"Demo.jar"
java -cp %CLASSPATH% Demo.Test
これは機能しますが、ソース ファイル Test.java を変更し、再コンパイルして、jar クラスの依存関係を使用して実行する必要があります。(意味が通じなかったらごめんなさい)
今、私はこれを再コンパイルして同じ結果を再現しようとしましたが、うまくいきませんでした:
javac -cp file1.jar;file2.jar;Demo.jar Test.java
定義されたマニフェスト:
manifest.mf
Main-class: Demo.Test
クラスファイル用のディレクトリ「store」を作成し、そこにクラスファイルを移動しました
ラン:
jar -cmf manifest.mf Demo.jar store
「Demo.jar」を作成したのは
次に、上記のバッチ スクリプトを実行しましたが、同じ結果にはなりませんでした (まったく機能しません)。
どんな助けでも大歓迎です。ありがとうございました!