javac
日本語 | ジャバ翻訳 |
英語 | java compile |
ふりがな | じゃばしー、じゃう”ぁしー |
フリガナ | ジャバシー、ジャヴァシー |
Javaのコンパイラ。
コンパイルを行うコマンド。ソースファイルを1ファイルずつコンパイルする。
-sourcepathパラメーターでソースファイルのディレクトリを指定する。
-classpathパラメーターでクラスパスを指定する。
-dパラメーターでクラスファイルの出力先ディレクトリを指定する。
特に、-sourcepathパラメーターを指定するか、-classpathパラメーターで-dパラメーターと同じディレクトリを指定しないと、クラスパスが解決できず、自分で作ったプログラムの別パッケージのクラスを参照できないためコンパイルエラーとなることに注意。
また、-sourcepathパラメーターを指定するか、-classpathパラメーターは「クラスパス」を意識してディレクトリを指定する点に注意。つまり「パッケージのルート」に当たるディレクトリを指定すること。
javacによるコンパイルは、ソースファイルをまとめて指定できないため非常に不便。
一応*.javaと指定することで特定ディレクトリのソースファイルをまとめてコンパイルできる。また、あるソースファイルが他のソースファイルに依存する場合、依存先ソースファイルを先にコンパイルする機能もある。
だが、それでも大規模なプロジェクトとなるとjavacによるコンパイルは非常に不便となる。その場合、AntやEclipseを使用した方が良い。
コンパイルを行うコマンド。ソースファイルを1ファイルずつコンパイルする。
-sourcepathパラメーターでソースファイルのディレクトリを指定する。
-classpathパラメーターでクラスパスを指定する。
-dパラメーターでクラスファイルの出力先ディレクトリを指定する。
特に、-sourcepathパラメーターを指定するか、-classpathパラメーターで-dパラメーターと同じディレクトリを指定しないと、クラスパスが解決できず、自分で作ったプログラムの別パッケージのクラスを参照できないためコンパイルエラーとなることに注意。
また、-sourcepathパラメーターを指定するか、-classpathパラメーターは「クラスパス」を意識してディレクトリを指定する点に注意。つまり「パッケージのルート」に当たるディレクトリを指定すること。
javacによるコンパイルは、ソースファイルをまとめて指定できないため非常に不便。
一応*.javaと指定することで特定ディレクトリのソースファイルをまとめてコンパイルできる。また、あるソースファイルが他のソースファイルに依存する場合、依存先ソースファイルを先にコンパイルする機能もある。
だが、それでも大規模なプロジェクトとなるとjavacによるコンパイルは非常に不便となる。その場合、AntやEclipseを使用した方が良い。
参考サイト
- (参考サイトはありません)
// 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
・javaコマンドによる実行
> java -classpath bin Sample
OtherPackageClass#output()
この「-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
・javaコマンドによる実行
> java -classpath bin Sample
OtherPackageClass#output()
この「-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 ・javaコマンドによる実行 > java -classpath bin Sample OtherPackageClass#output() この「-classpath」がクラスパスの指定です。 binディレクトリに指定していることに注意してください。 クラスファイルひとつひとつを指定するのではなく、パッケージの基準となる ディレクトリを指定します。 */