Loading article…
Javaコンパイラとは、 Javaプログラミング言語用のコンパイラのことです。
Javaコンパイラの中には、特定のハードウェア/オペレーティングシステムの組み合わせ(ドメイン固有コンピュータシステムと呼ばれる)向けに最適化されたマシンコードを出力するものがある。例としては、現在開発が終了しているGNU Compiler for Javaが挙げられる。[ 1 ]
Javaコンパイラからの出力で最も一般的な形式は、Javaバイトコードと呼ばれるクロスプラットフォームの中間表現(IR)を含むJavaクラスファイルです。[ 2 ]
Java仮想マシン(JVM)はクラスファイルをロードし、バイトコードを解釈するか、またはジャストインタイムでマシンコードにコンパイルし、動的コンパイルを使用して最適化する場合があります。
Javaコンパイラとのやり取り方法に関する標準はJSR 199で規定されている。 [ 3 ]
これはモジュールjdk.compilerによって提供され、完全なJava開発キット( Javaランタイム環境だけではなく)が必要であり、javax.tools.*名前空間に存在します。[ 4 ]
パッケージorg.wikipedia.examples ;import java.io.IOException ; import java.io.File ;import javax.tools.JavaCompiler ; import javax.tools.ToolProvider ;public class Example { private final String TEST_FILE_NAME = "Test.java" ;public static void main ( String [] args ) throws IOException { File sourceFile = new File ( TEST_FILE_NAME ); if ( ! sourceFile . exists ()) { throw new IllegalArgumentException ( String . format ( "ファイル パス %s が存在しません!" , TIME_FILE_NAME )); } JavaCompiler compiler = ToolProvider . getSystemJavaCompiler ();if ( compiler == null ) { throw new RuntimeException ( "コンパイラが利用できません。JDKではなくJREで実行していませんか?" ); }int result = compiler.run ( null , null , null , sourceFile ) ;System.out.printf ( "コンパイル結果: % s %n" , result == 0 ? "成功" : "失敗" ); } }