Javaコンパイラ
表示
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ソースファイルのファイル名に書き換える必要がある。
> 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)
脚注
[編集]- ^ “ソースファイルのエンコーディングを指定してコンパイルする”. Let'sプログラミング. 2023年3月14日閲覧。
外部リンク
[編集]- Jikes homepage
- JSR 199 - Java Compiler API Java Specification Request for invoking the Java compiler from a Java program
- Oracle Java