回答:
と思われるJava用のGNUコンパイラは Javaバイトコードまたはマシン・コードのいずれかにJavaソースコードを変換することができます。既存のJavaバイトコードをマシンコードに変換することもできます。ただし、最後のニュースは2009年のものであるため、それがどの程度最新であり、Java言語の最新機能を処理できるかどうかはわかりません。
OPに直接直接回答するわけではありませんが、おそらく興味深い話です。Javaは3つのモードで実行できます。
-Xint
解釈- -フラグバイトコードのみ-Xcomp
コンパイル- -機械コンパイルフラグは、-Xcomp
JDK 7のドキュメントまたはHotSpotオプションのドキュメントで見つけることができなかったため、偶然にも参照があります。
javac
ですか?-Xcompを使用すると、デフォルトで単一のバイナリファイルが出力されますか?
System.getProperty(“ os.name”)を使用してオペレーティングシステムを検出する方が良い場合があります。これにより、複数のOSをサポートすることを選択できますが、他のOSは除外します。
java -Dos.name=MacOS
。
GraalVMを使用すると、プログラムを事前にネイティブ実行可能ファイルにコンパイルできます。ネイティブイメージ機能を見てみましょう。
要約
https://www.graalvm.org/docs/getting-started/#native-images
デモ:起動を高速化するためのネイティブイメージ
https://www.graalvm.org/docs/examples/native-list-dir/
詳細:「先行コンパイル」
https://www.graalvm.org/docs/reference-manual/aot-compilation/
関連質問:「Javaをネイティブコードにコンパイルできますか?」 https://stackoverflow.com/questions/2991799/can-i-compile-java-to-native-code/50555050#50555050
PS GCJはもう保守されていません。
出典:「gcjの削除」http://tromey.com/blog/?p=911