前置き
五日後に試験を控えた状況で、コマンド系がなかなか覚えられない。
なのでQiitaでまとめて書いてみることで覚えたいと思います。
網羅できてる保証とかはないので、参考程度にどうぞ。
実行 ( java )
java Sample
コンパイルされた.class
ファイルを実行する。
java Sample.java
コンパイルなしで.java
ファイルを実行できる。
この時、メモリ空間にクラスファイルが生成されている。
(Java 11から導入されたソースファイルモード)
java Sample.java arg0 arg1 arg2...
ファイル名以降に書いた文字列は起動パラメータとして、main(String[] args)
の引数部分に文字列の配列として入力される。
-classpathオプション ( -cp )
java -classpath ディレクトリ Sample.java
java -cp ディレクトリ Sample.java
javaでの実行はカレントディレクトリでのファイルが対象となるが、
--classpath
でディレクトリを指定すると、そのディレクトリ内のファイルを対象とする。
上記の例ではディレクトリのSample.java
を実行する。
javac
コマンドでも同様に指定ができる。
--sourceオプション
java --source バージョン ファイル名
.java
拡張子のついていないファイルをソースファイルモードで実行する。
数字部分でjavaのバージョンを指定。
コンパイル ( javac )
javac Sample.java
.java拡張子のついたファイルをコンパイルする。
同じディレクトリに.class
ファイルが生成される。
-dオプション
javac -d dir1 Sample.java
簡単に言うと指定したディレクトリにクラスファイルが格納される。
指定したディレクトリがファイルのパッケージのルートディレクトリとなる。
モジュールシステム
java --list-modules
モジュール名が一覧表示される。
java --module-path モジュールのディレクトリ --describe-module モジュール
モジュールの情報を確認する。
モジュール名、格納場所、requires
とexports
、含まれるパッケージといった情報が表示。
jdeps クラスファイルまたはJARファイル
依存関係を確認する。
依存するモジュール名や必要なパッケージ名が表示される。
dependencesが語源?
モジュールの実行
java --module-path モジュールのルートディレクトリ --module 実行するクラス
java -p モジュールのルートディレクトリ -m 実行するモジュールのクラス
--module-path
で指定したモジュールの、--module
で指定したクラスを実行する。
クラスファイルの指定は完全修飾名でする必要がある点に注意。
java --show-module-resolution -p モジュールのルートディレクトリ -m 実行するモジュールのクラス
モジュール解決をした後、モジュールが実行される。
--add-exportsオプション
--add-exports 参照側モジュール名/パッケージ名=利用側モジュール名
参照側モジュールがexports
されてないときに、強制的にexports
するオプション。
セキュリティ的には良くない。
後書き
こうみると意外と少ないコマンド集。こう書き出してみると覚えられそうな気がしてきました。
誤選択肢や実務ではjar
とかjmod
とかあるみたいですが、多分試験には出ないでしょう。
なんかJavaSilverの受験料が37000円に爆上がりしてたので、一発合格目指して頑張りましょう。