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

著名なコンパイラ 編集

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

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

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

コンパイル方法 編集

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

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

> javac hoge.java

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

> javac -encoding UTF-8 hoge.java
> javac -J-Dfile.encoding=UTF-8 hoge.java

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

脚注 編集

  1. ^ ソースファイルのエンコーディングを指定してコンパイルする”. Let'sプログラミング. 2023年3月14日閲覧。

外部リンク 編集