javacとは、Javaのソースコードをコンパイルしてクラスファイルを生成するコマンドである。
javacコマンドはJDK (Java Development Kit)に含まれるため、javacコマンドを使うためにはJDKをインストールする必要がある。JRE (Java Runtime Environment)にjavacコマンドは含まれていない。
Javaのソースファイルをテキストエディタ等で作成します。次にjava ソースファイルの例 HelloWorld.java を示します。
class HelloWorld {
public static void main(String args[]) {
System.out.println("Hello world");
}
}
Javaのソースファイルをコンパイルするには、javac コマンドを使用します。
javac [option...] source
javacコマンドに指定できるオプションの一覧を次に示す。
$ more Example.java
import java.util.Calendar;
public class Example {
public static void main(String[] args) {
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.get(Calendar.YEAR));
}
}
$ javac -g Example.java
$ javap -l Example
Compiled from "Example.java"
public class Example {
public Example();
LineNumberTable:
line 3: 0
LocalVariableTable:
Start Length Slot Name Signature
0 5 0 this LExample;
public static void main(java.lang.String[]);
LineNumberTable:
line 5: 0
line 6: 4
line 7: 15
LocalVariableTable:
Start Length Slot Name Signature
0 16 0 args [Ljava/lang/String;
4 12 1 calendar Ljava/util/Calendar;
}
デバッグ情報 | 説明 |
---|---|
lines | ソースコードの行番号 |
source | ソースファイル名 |
vars | ローカル変数名 |
$ javac -classpath /home/tsuka/example.jar Example.java
$ javac -encoding UTF-8 Example.java
$ javac -version
$ javac -help
javac HelloWorld.java
Microsoft Windowsのコマンドプロンプトからjavacコマンドを実行したときに「認識されていません」とのエラーメッセージが表示される場合、JDKがインストールされていないか、環境変数 Path にjavacコマンドが存在するフォルダのパスが設定されていない。
C:\>javac
'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
Microsoft WindowsのPowerShellからjavacコマンドを実行したときに「認識されていません」とのエラーメッセージが表示される場合、JDKがインストールされていないか、環境変数 Path にjavacコマンドが存在するフォルダのパスが設定されていない。
PS C:\> javac
javac : 用語 'javac' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されませ
ん。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してくだ
さい。
発生場所 行:1 文字:1
+ javac
+ ~~~~~
+ CategoryInfo : ObjectNotFound: (javac:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Oracle (2020) "Supported Encodings" Internationalization Guide