2017-01-08 22 views
4

У меня была новая установка, и перед установкой Java удалось запустить NetBeans и OpenOffice. Если эти программы были написаны на Java, как это возможно? Я знаю, что существует .class до .exe конвертеров, но я думал, что это хаки (не подходит для крупных приложений, развернутых по всему миру). Каков общий подход к развертыванию приложения на Java без JRE? Существует ли стандартный или наиболее распространенный способ?Как программы, написанные на Java, не требуют JRE?

Сначала я думал, что это связано с файлами Jar, но из того, что мне нужно, для их выполнения требуется установка Java.

+0

Duplicates http://stackoverflow.com/questions/147181/how-can-i-convert-my-java-program-to-an-exe-file –

+1

afaik OpenOffice написан на C++ – trooper

+0

У вас уже установлена ​​Java если Netbeans побежал. – EJP

ответ

2

Все приложения Java работают на верхней части JRE. Даже NetBeans и OpenOffice.

Большинство развертываемых приложений Java имеют JRE, упакованные вместе с ним. Чтобы вы могли видеть, что у него нет JRE, но в нем есть один, и приложение будет работать поверх него.

+0

Итак, вы, по сути, говорите, что приложение может поставляться со своей собственной JRE? Поскольку на момент запуска приложения определенно не было (установлено) на компьютере. – Celeritas

+0

Да, например, Netbeans с JDK/JRE, вы можете следить за этим http://www.oracle.com/technetwork/java/javase/downloads/jdk-netbeans-jsp-142931.html – shazin

+0

@Celeritas посмотрите на launch4j и другие подобные этому , он может связывать jars & jre, чтобы сделать их .exe (для окон как минимум) для примера – NeeL

0

Есть только два способа, которыми вы можете запустить программу: вы либо скомпилируете ее в машинный код, либо используете интерпретатор.

JRE интерпретирует байт-код Java (и, конечно же, делает многое другое). Существуют компиляторы, которые генерируют собственные исполняемые файлы из исходного кода Java или байтового кода. Единственный, о котором я знаю, - gcj, и последний раз, когда я проверил это, был только для Java 5 и, похоже, не был очень надежным.

Большинство приложений Java требуют либо JRE, либо одного из них, входящих в дистрибутив.

Например, вы можете получить Oracle SQL Developer с включенным JRE или без него. О Netbeans существуют дистрибутивы, требующие JDK (JRE недостаточно, так как для этого нужны компилятор и инструменты для разработки), а также JDK с пакетами Netbeans.

Теперь есть три основных способа запуска приложения Java (не считая Java Web Start и т. П.): Вы запускаете java-команду вручную, вы используете скрипт, который делает это, или вы запускаете исполняемый файл, называемый «оберткой».

Существует несколько оберток, которые вы можете настроить для любого приложения. Ссылка PJ Fanning включает список, если не ошибаюсь. В оболочках используется JRE для запуска приложения и упрощения запуска java-приложений в качестве служб при запуске системы.

Итак, если вы не нашли приложение, которое было скомпилировано в собственный код (а затем, в идеале, вы не могли сказать, что это приложение Java), вы всегда используете некоторую JRE, будь то предустановленный или в комплекте.