Javaでパッケージにしたクラスのコンパイルと実行方法

任意のパッケージにあるクラスのコンパイルと実行方法についてです。環境は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.」と表示されれば実行できています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です