0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

java コンパイル仕様について気づいたこと

Posted at

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
Main.java
package test;

class Main {
    public static void main (String[] args) {
        Test test = new Test();
        test.print();
    }
}
Test.java
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に修正します.

Test.java
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

結果

どうパッケージ内のファイルにおいて,参照関係にあるファイルは個別にコンパイルをしなくても更新されることがわかりました.

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?