java初心者。
javaでjarファイルを作り、実行するまで。
##<概要>
①適当なディレクトリ作成
②適当なjavaファイル作成
③JARファイルの作成
④マニフェストファイルをいじる
⑤実行
##<詳細>
###①適当なディレクトリ作成
~/sample/
###②適当なjavaファイル作成
作業ディレクトリ:~/sample/Sample.java
package sample;
public class Sample{
public static void main(String[]args){
System.out.println("実行できた");
}
}
一回、コンパイルと実行してみる。
作業ディレクトリ:~
> javac sample/Sample.java
> java sample.Sample
実行できた
###③JARファイルの作成
作業ディレクトリ:~
>jar -cvf Sample.jar sample/
マニフェストが追加されました
sample/を追加中です(入=0)(出=0)(0%格納されました)
sample/Sample.classを追加中です(入=428)(出=305)(28%収縮されました)
sample/Sample.javaを追加中です(入=137)(出=120)(12%収縮されました)
JARファイルの中身確認
> jar -tvf Sample.jar
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
0 Sat Mar 14 12:19:02 JST 2020 META-INF/
66 Sat Mar 14 12:19:02 JST 2020 META-INF/MANIFEST.MF
0 Sat Mar 14 12:15:34 JST 2020 sample/
428 Sat Mar 14 12:15:34 JST 2020 sample/Sample.class
137 Sat Mar 14 12:09:48 JST 2020 sample/Sample.java
###④マニフェストファイルをいじる
作業ディレクトリ:~
META-INF/MANIFEST.MFの中身
META-INF/MANIFEST.MF
Manifest-Version: 1.0
Created-By: 13.0.2 (Oracle Corporation)
マニフェストファイルの作成
Sample.mani
Main-Class: sample.Sample
メイン・マニフェスト属性の追加
>jar -uvfm Sample.jar Sample.mani
マニフェストが更新されました
実行後のMETA-INF/MANIFEST.MFの中身
META-INF/MANIFEST.MF
Manifest-Version: 1.0
Created-By: 13.0.2 (Oracle Corporation)
Main-Class: sample.Sample
直接MANIFEST.MFにMain-Classを書き込んだが、それでは実行できなかった。
###⑤実行
作業ディレクトリ:~
> java -jar Sample.jar
実行できた
他の実行方法
> java -cp Sample.jar sample.Sample
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
実行できた