Могу ли я скомпилировать Java в нативный код? - PullRequest
65 голосов
/ 07 июня 2010

Есть ли способ компиляции из Java в автономный (или библиотечный) машинный код без JVM?

Ответы [ 4 ]

36 голосов
/ 07 июня 2010

Раньше был инструмент под названием GCJ, который был частью GCC, но он был удален . Теперь все ссылки на сайте GCC перенаправляют на их не-GCJ-эквиваленты.

Примечание: все комментарии ссылаются на мой оригинальный ответ о том, что вы можете скомпилировать Java в нативный код с помощью GCJ.

16 голосов
/ 08 июня 2010

Excelsior JET - коммерческий компилятор с Java на собственный код.

12 голосов
/ 27 мая 2018

Да!

Oracle работает над GraalVm, который поддерживает Native Images. Проверьте здесь: https://www.graalvm.org/

Собственное изображение Собственная функция изображения с помощью GraalVM SDK помогает сократить время запуска Java-приложений и дает им меньшую площадь. По сути, это преобразование байт-кода, который выполняется на JVM (на любой платформе), в собственный код для конкретной ОС / платформы - отсюда и производительность. Для достижения высокой производительности используются агрессивные опережающие оптимизации (AOT).

Подробнее:

10 голосов
/ 07 июня 2010

Да, JIT в JVM делает именно это для вас.

Фактически он может генерировать более быстрый код, чем его предварительная компиляция, поскольку он может генерировать код, оптимизированный для конкретной платформы, в зависимости от того, как код используется во время выполнения.

JVM всегда задействована, даже если очень большой процент компилируется в собственный код, поскольку вы можете динамически загружать и запускать байт-код.

...