Javaコンパイル時に気づけたことメモ
Javaを学習中の私が,参照関係のjavaファイル実行時に気づいた内容を記載しました.
概要
参照関係にあるファイルについて(下記)参照元のファイルをコンパイルした場合,参照先のファイ変更は変更されるかの検証です.
Main.java -> Test.java
Javaを実行するまでに使用するコマンド
新規作成したjavaファイルを実行する際にコンパイルと実行で2回コマンドを実行する必要があります(以下2つ).
コンパイルコマンド
javac test/Main.java
実行コマンド
java test.Main
サンプルファイル
Main.javaでTest.javaを使用しているサンプルコードを用意しました(以下).
実行対象のファイルはMain.javaです.
test
├── Main.java
└── Test.java
package test;
class Main {
public static void main (String[] args) {
Test test = new Test();
test.print();
}
}
package test;
public class Test {
public void print() {
System.out.println("Hello World");
}
}
コンパイル(初回)とコンパイル後の構成
javaコマンドを実行し,ファイルをコンパイルします.
javac test/Main.java
test
├── Main.class
├── Main.java
├── Test.class
└── Test.java
Main.javaをコンパイルすると参照関係にあるTest.javaもコンパイルされます.
初回コンパイル後の実行結果
Main.classを下記コマンドで実行してみましょう.
java test.Main
テストパッケージ配下にあるため,classファイル名の前にパッケージ名を付けます.
Hello World
Test.javaを修正する
Test.javaの出力をHello WorldからHello Testに修正します.
package test;
public class Test {
public void print() {
System.out.println("Hello Test");
}
}
コンパイル(2回目)とコンパイル後の構成
初回と同様のコマンドでコンパイルを実行します.(ファイル削除は行いません)
javac test/Main.java
実行後のファイル構成は,当然ながら初回の実行後と同様になります.
test
├── Main.class
├── Main.java
├── Test.class
└── Test.java
初回と同様のコマンドで実行します.
java test.Main
Hello Test
結果
どうパッケージ内のファイルにおいて,参照関係にあるファイルは個別にコンパイルをしなくても更新されることがわかりました.