eclipseを使っていると忘れがちなjavaのコマンドライン操作周辺知識のまとめ
Advertisements
javaを実行する際に依存関係のあるクラスは、JVMから検索可能である必要がある。
JVMの検索対象は%JAVA_HOME%/jre/lib/extや標準ライブラリに配置されたモジュールである。
/jre/lib/extディレクトリは拡張ディレクトリと呼ばれ、自動的にCLASSPATHに追加される仕組みである。
具体的には、
C:\Program Files (x86)\Java\jdk1.6.0_31\jre\lib\ext
に配置されたjarファイルならば、JVM(=javaの実行環境)から検索可能であるということである。
それ以外のクラスを利用する場合には、明示的にクラスパスを指定する必要がある。
ちなみにjarファイル内のクラスを利用する場合は、クラス名ではなく、jarファイル名を指定する必要がある。
javacコマンドでクラスファイルの出力先を指定する
tempフォルダ以下にTest.javaがある。
C:\temp\java>dir 2012/07/14 17:28 <DIR> test 2012/07/14 17:28 100 Test.java
javacコマンドを使ってコンパイルして、classファイルを作成する。
デフォルトではカレントフォルダにclassファイルが作成される。
C:\temp\java>javac Test.java C:\temp\java>dir 2012/07/14 17:28 <DIR> test 2012/07/14 17:30 413 Test.class 2012/07/14 17:28 100 Test.java
ディレクトリを指定してclassファイルを出力させたい時
C:\temp\java\classes以下にclassファイルを出力させたい時はオプションに「-d フォルダ名]を指定する。
C:\temp\java>javac -d C:\temp\java\classes Test.java C:\temp\java\classes>dir 2012/07/14 17:34 413 Test.class
このようにclasses以下にclassファイルが作成された。
注意点
javacの-dで指定するディレクトリは、指定したディレクトリが既に作成済みである必要がある。
オプション | 意味 |
---|---|
-cp | -classpathオプションの省略形であり、クラスパスを設定するために使用する |
-D | システムプロパティを設定するために使う |