Да, именно так: Java без JVM. В данной статье рассмотрим работу с Java (компиляция/запуск), не используя такие средства, как JVM/JDK и подобное. Ах да, и никаких on-line инструментов, все только локально :) А воспользуемся мы таким инструментом, как GCJ:
GNU Compiler for Java (GCJ или gcj) — это свободный компилятор языка Java, являющийся частью GNU Compiler Collection. GCJ может компилировать исходный код Java в байткод виртуальной машины Java, либо непосредственно в машинный код многих процессорных архитектур. Он также может компилировать файлы классов, содержащие байткод, или целые JAR, содержащие такие файлы, в машинный код.
Установка
В unix-системах достаточно выполнить команду установки пакета apt-get
:
В результате будет скачано и установлено около десяти мегабайт ресурсов. После чего инструмент готов к использованию.
Использование
Пишем Java код, компилируем в бинарник и запускаем:
Строка --main=Test
говорит о том, что точка входа в приложение находится в классе Test
.
Плюсы
- Не требует установки JVM для запуска
- Только машинный код
- Преобразует в машинный код файлы типа
*.java *.jar *.class
- Приложение запускается быстрее, чем через JVM
Минусы
- Код исполняется не всегда быстрее, чем байт-код в JVM
- Размер выходного файла обычно больше аналогичного
*.class
файла - Применение бинарника ограничено платформой, для которой файл был скомпилирован
Заключение
Конечно, плюсов и минусов может быть больше - я лишь поверхностно рассмотрел данный вопрос. Использовать JVM/JDK все же привычнее, но не стоит упускать из вида и данный инструмент - например, если вдруг придется писать приложение для устройства, ограниченного в ресурсах, а для этих целей хочется использовать язык, который знаешь лучше всего (в данном случае Java).