みなさんこんにちは。
今回はJavaプログラムの実行方法についてご紹介いたします。
それではさっそく始めましょう。

サンプルプログラム

以下のようなディレクトリ構成を考えます。

root/
 ├ Main.java/
 ├ libs/
 │ └ InfoDialog.java
import libs.InfoDialog;

public class Main {
    public static void main(String[] args) {
        InfoDialog info_dialog = new InfoDialog();
        info_dialog.showDialog("Hello !!");
    }
}
package libs;

import javax.swing.JOptionPane;

class InfoDialog {

    public void showDialog(String msg) {
        JOptionPane.showMessageDialog(null, msg, "Sub2", JOptionPane.INFORMATION_MESSAGE);
    }
}

Main.javaでpackageからInfoDialog.javaをインポートすることで外部ライブラリを使用することができます。この時外部ライブラリのクラスとメソッドをpublicにしておかないと参照エラーとなるため注意して下さい。続いてコンパイルと実行コマンドを示します。

javac -J-Dfile.encoding=UTF-8 Main.java
java Main

実行結果は以下になります。

おまけ:別階層に同じ名前のファイル(クラス)がある場合

以下の構成のように別階層に同じ名前のファイル(クラス)がある場合を考えます。この場合はimportで明示的に指定されているライブラリ(libs以下のInfoDialog.java)が呼び出されます。
ディレクトリ階層は以下のようになっております。

root/
 ├ Main.java/
 ├ InfoDialog.java/
 ├ libs/
 │ └ InfoDialog.java

新しく追加したMain.javaと同階層のInfoDialog.javaの内容は以下になります。

import javax.swing.JOptionPane;

class InfoDialog {

    public void showDialog(String msg) {
        JOptionPane.showMessageDialog(null, msg, "Sub1", JOptionPane.INFORMATION_MESSAGE);
    }
}

実行結果は先程と同様に以下のようになります。

また、ファイル名が異なっていても同じ名前のメソッドがある場合は別のファイルをインポートしていなくても優先順位によっては名前解決エラーとなりますので注意してください。使わないファイルは削除しておくことをおすすめします。

まとめ

いかがだったでしょうか。
今回はJavaプログラムの実行方法についてご紹介しました。
最後までお読みいただきありがとうございました。