0
0

More than 3 years have passed since last update.

Java JAR 基礎

Last updated at Posted at 2020-03-14

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
実行できた
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0