任意のパッケージにあるクラスのコンパイルと実行方法についてです。環境はLinuxです。
ソースファイル(Main.java)
package sample01;
class Main {
public static void main( String[] args ) {
Number num = new Number();
System.out.println( "Number is " + num.getNum() + "." );
}
}
ソースファイル(Number.java)
package sample01;
public class Number {
private int num;
public Number() {
num = 10;
}
public int getNum() {
return num;
}
}
MainクラスとNumberクラスはsample01というパッケージに属しています。
これらのソースを配置するのですが、ディレクトリ構成は以下のようにします。Javaフォルダは任意の場所に配置してください。
Javaフォルダにsrcフォルダとclassesフォルダを用意します。srcフォルダにsample01フォルダを作成し Main.java と Number.java を格納します。
コンパイルするためにコンパイル用のシェルを作成します。シェル名は compile.sh とします。compile.sh をsrcフォルダに格納します。実行権限もつけてください。
compile.shの内容
#!/bin/bash
javac -d ../classes -sourcepath ./ $1
compile.sh はカレントディレクトリでの実行とします。javacコマンドの説明をしておくと「-d . ./classes」はクラスファイルの出力先の指定、「-sourcepath ./」はソースファイルの検索場所となります。「$1」は compile.sh の引数です。
srcフォルダで compile.sh を実行します。引数は sample01/Main.java となります。
$ cd ./Java/src
$ ./compile.sh sample01/Main.java
compile.sh を実行すると /Java/classes/sample01 フォルダに Main.class と Number.class が生成されます。
Main.class を実行するにはclassesフォルダでjavaコマンドを実行します。引数は sample01.Main となります。
$ cd ./Java/classes
$ java sample01.Main
「Number is 10.」と表示されれば実行できています。