Javaコンパイラは、コンピュータ・プログラミング言語Javaのコンパイラである。

著名なコンパイラ

2020年時点で、以下のようなものが著名である:

javac
オラクルから出ているJava Development Kitに含まれている。
Jikes
C で書かれたIBMから出ているオープンソースコンパイラであり、最適化のため静的単一代入形式の変形を使用している。
GCJ
GNUコンパイラコレクション (GCC) の一部である。GCCは C、Fortran、Pascal他、Java以外の言語も含む。 GCCのバックエンドを用いてネイティブコードを生成できる。2015年よりメンテナンスモードとなっている。
ECJ
the Eclipse Compiler for Java, Eclipse JDTに使用されているオープンソースインクリメンタルコンパイラ。

その他、形式的意味論のために研究されている Featherweight Java のための処理系など、著名ではないが重要なものがいくつかある。

コンパイル方法

2023年時点で、javacを使用して、Javaソースファイルをコンパイルする基本的なコードは、下記の通りである。

なお、この章で示すコードを実際に実行する際は、「hoge」の部分をコンパイルしたいJavaソースファイルのファイル名に書き換える必要がある。

もし、仮にJavaソースファイルの中にUTF-8形式の文章を出力するコードが記述されている場合は、コンパイルして実行した際に文字化けが発生する可能性があるので、このコードは実行できない。代わりに、下記のコードを実行することで対策ができる。

また、UTF-8以外の文字コードに変換する際でも、コード欄の「UTF-8」を目的の文字コード名へ書き換えることで、正しく変換することができる。(JavaDrive - 実行環境のエンコーディングに合わせてプログラムを実行する : https://www.javadrive.jp/start/encoding/index4.html)

脚注

外部リンク

  • Jikes homepage
  • JSR 199 - Java Compiler API Java Specification Request for invoking the Java compiler from a Java program
  • Oracle Java

eclipse — JavaコンパイラレベルがインストールされているJavaプロジェクトファセットのバージョンと一致しません

【初心者でもわかる】Javaのコンパイルとは?とその方法

java — 「コンパイルを開始できません。出力パスがモジュールに指定されていません...」

【初心者向け】Javaプログラムの実行方法とその仕組みとは?

Javaのsynchronizedとは?ある場合とない場合のサンプルPGを比較付き Rainbow Engine