JVMを必要とせずにJavaからスタンドアロン(またはライブラリ)マシンコードにコンパイルする方法はありますか?
以前はGCCの一部であったGCJというツールがありましたが、それは 削除済み です。現在、GCCサイト内のすべてのリンクは、非GCJの同等のものにリダイレクトされます。
NB:コメントはすべて、JavaをGCJを使用してネイティブコードにコンパイルできるという私のオリジナルの回答を参照しています。
Excelsior JET は、ネイティブコードコンパイラへの商用Javaです。
はい!
Oracleは、ネイティブイメージをサポートするGraalVmに取り組んできました。ここで確認してください: https://www.graalvm.org/
ネイティブイメージGraalVM SDKのネイティブイメージ機能は、Javaアプリケーションの起動時間を短縮し、より小さなアプリケーションを提供します。フットプリント:事実上、JVM(任意のプラットフォーム)で実行されるバイトコードを特定のOS /プラットフォームのネイティブコードに変換します-これがパフォーマンスの源泉です。パフォーマンス。
続きを見る:
はい、JVMのJITはまさにそれを行います。
実際、実行時のコードの使用方法に基づいて特定のプラットフォーム向けに最適化されたコードを生成できるため、コードを事前にコンパイルするよりも高速なコードを生成できます。
非常に高い割合がネイティブコードにコンパイルされる場合でも、バイトコードを動的にロードして実行できるため、JVMは常に関与しています。