クラスファイル
日本語 | クラスのファイル |
英語 | class file |
ふりがな | くらすふぁいる |
フリガナ | クラスファイル |
拡張子が.classのファイル。
実行できる形式のクラスが入っているファイル。
Javaソースファイル(拡張子が.javaのファイル)をコンパイルすることで、1クラスにつき1ファイル作られる。
ひとつのソースファイル内に複数のクラスが含まれている場合にはそれらのクラスもクラスファイルとして作成されるため、ソースファイルとクラスファイルが一対一の関係であるとは限らない。
クラスファイルが出力されるディレクトリの構造は、クラスのパッケージと同じディレクトリ構造となる。
クラスのパッケージはソースファイルの置かれたディレクトリと同じため、クラスファイルのディレクトリ構造はソースファイルのものと同じとなる。
クラスファイル内にmain()メソッドがある場合、javaコマンド等で実行することができる。
クラスファイル内のクラスからは、他のクラスファイル内のクラスを使用する。
実行時には必ず、クラスファイルとなっている必要がある。ソースファイルのままでは実行できない。
実行できる形式のクラスが入っているファイル。
Javaソースファイル(拡張子が.javaのファイル)をコンパイルすることで、1クラスにつき1ファイル作られる。
ひとつのソースファイル内に複数のクラスが含まれている場合にはそれらのクラスもクラスファイルとして作成されるため、ソースファイルとクラスファイルが一対一の関係であるとは限らない。
クラスファイルが出力されるディレクトリの構造は、クラスのパッケージと同じディレクトリ構造となる。
クラスのパッケージはソースファイルの置かれたディレクトリと同じため、クラスファイルのディレクトリ構造はソースファイルのものと同じとなる。
クラスファイル内にmain()メソッドがある場合、javaコマンド等で実行することができる。
クラスファイル内のクラスからは、他のクラスファイル内のクラスを使用する。
実行時には必ず、クラスファイルとなっている必要がある。ソースファイルのままでは実行できない。
// Sample.java
// OtherPackageClassクラスを使うのでインポートします。
import test.test2.OtherPackageClass;
public class Sample
{
public static void main( String[] args )
{
// OtherPackageClassクラスを使います。
OtherPackageClass otherPackageClass = new OtherPackageClass();
otherPackageClass.output();
}
}
// test/test2/OtherPackageClass.java
/**
つまり、このファイルはtest/test2フォルダの中にあります。
Sample.javaはtestフォルダと同階層にあります。
位置関係はこんな感じ。
project/src/Sample.java
project/src/test/test2/OtherPackageClass.java
*/
package test.test2;
/**
* test.test2パッケージ内のクラス。
*/
public class OtherPackageClass
{
/**
* 出力します。
*/
public void output()
{
System.out.println( "OtherPackageClass#output()" );
}
}
/*
・javacコマンドによるコンパイル
ソース: project/src/
出力先: project/bin/
とします。
コンソールを開いて、projectディレクトリに移動してください。
> javac -d bin -classpath bin -sourcepath src src/test/test2/OtherPackageClass.java
> javac -d bin -classpath bin -sourcepath src src/Sample.java
でソースファイル2つをコンパイルできます。
次の2つのクラスファイルが作られます。
project/bin/Sample.class
project/bin/test/test2/OtherPackageClass.class
このように、1つのクラスにつき1つのクラスファイルが作られます。
また、出力先のディレクトリ構造は、クラスのパッケージ、つまりソースファイルの
ディレクトリと同じ構造になります。
・javaコマンドによる実行
> java -classpath bin Sample
OtherPackageClass#output()
一番右の「Sample」が、main()メソッドのあるクラスです。
ここではクラスファイルではなくクラスを指定するので「.class」を付けません。
「-classpath」はクラスパスを指定するパラメーターです。
ここではbinを指定しています。このパラメーターでは、クラスファイル
ひとつひとつを指定するのではなく、パッケージの基準となるディレクトリを
指定します。
*/
// OtherPackageClassクラスを使うのでインポートします。
import test.test2.OtherPackageClass;
public class Sample
{
public static void main( String[] args )
{
// OtherPackageClassクラスを使います。
OtherPackageClass otherPackageClass = new OtherPackageClass();
otherPackageClass.output();
}
}
// test/test2/OtherPackageClass.java
/**
つまり、このファイルはtest/test2フォルダの中にあります。
Sample.javaはtestフォルダと同階層にあります。
位置関係はこんな感じ。
project/src/Sample.java
project/src/test/test2/OtherPackageClass.java
*/
package test.test2;
/**
* test.test2パッケージ内のクラス。
*/
public class OtherPackageClass
{
/**
* 出力します。
*/
public void output()
{
System.out.println( "OtherPackageClass#output()" );
}
}
/*
・javacコマンドによるコンパイル
ソース: project/src/
出力先: project/bin/
とします。
コンソールを開いて、projectディレクトリに移動してください。
> javac -d bin -classpath bin -sourcepath src src/test/test2/OtherPackageClass.java
> javac -d bin -classpath bin -sourcepath src src/Sample.java
でソースファイル2つをコンパイルできます。
次の2つのクラスファイルが作られます。
project/bin/Sample.class
project/bin/test/test2/OtherPackageClass.class
このように、1つのクラスにつき1つのクラスファイルが作られます。
また、出力先のディレクトリ構造は、クラスのパッケージ、つまりソースファイルの
ディレクトリと同じ構造になります。
・javaコマンドによる実行
> java -classpath bin Sample
OtherPackageClass#output()
一番右の「Sample」が、main()メソッドのあるクラスです。
ここではクラスファイルではなくクラスを指定するので「.class」を付けません。
「-classpath」はクラスパスを指定するパラメーターです。
ここではbinを指定しています。このパラメーターでは、クラスファイル
ひとつひとつを指定するのではなく、パッケージの基準となるディレクトリを
指定します。
*/
// Sample.java // OtherPackageClassクラスを使うのでインポートします。 import test.test2.OtherPackageClass; public class Sample { public static void main( String[] args ) { // OtherPackageClassクラスを使います。 OtherPackageClass otherPackageClass = new OtherPackageClass(); otherPackageClass.output(); } } // test/test2/OtherPackageClass.java /** つまり、このファイルはtest/test2フォルダの中にあります。 Sample.javaはtestフォルダと同階層にあります。 位置関係はこんな感じ。 project/src/Sample.java project/src/test/test2/OtherPackageClass.java */ package test.test2; /** * test.test2パッケージ内のクラス。 */ public class OtherPackageClass { /** * 出力します。 */ public void output() { System.out.println( "OtherPackageClass#output()" ); } } /* ・javacコマンドによるコンパイル ソース: project/src/ 出力先: project/bin/ とします。 コンソールを開いて、projectディレクトリに移動してください。 > javac -d bin -classpath bin -sourcepath src src/test/test2/OtherPackageClass.java > javac -d bin -classpath bin -sourcepath src src/Sample.java でソースファイル2つをコンパイルできます。 次の2つのクラスファイルが作られます。 project/bin/Sample.class project/bin/test/test2/OtherPackageClass.class このように、1つのクラスにつき1つのクラスファイルが作られます。 また、出力先のディレクトリ構造は、クラスのパッケージ、つまりソースファイルの ディレクトリと同じ構造になります。 ・javaコマンドによる実行 > java -classpath bin Sample OtherPackageClass#output() 一番右の「Sample」が、main()メソッドのあるクラスです。 ここではクラスファイルではなくクラスを指定するので「.class」を付けません。 「-classpath」はクラスパスを指定するパラメーターです。 ここではbinを指定しています。このパラメーターでは、クラスファイル ひとつひとつを指定するのではなく、パッケージの基準となるディレクトリを 指定します。 */