2016-01-13 4 views
2

У меня есть Java-программа, которая преобразуется как исполняемый jar. Можно ли запустить банку на Linux-машине, где Java недоступен? I. машина, у которой нет Java.Запуск Java без JVM в среде Linux

+3

Вы можете захотеть связать JVM с JAR. Это будет около 80 МБ, но есть много инструментов, чтобы сделать его очень легким. –

+1

why.do.you.put.periods всюду? –

ответ

1

Попробуйте этот компилятор. https://en.wikipedia.org/wiki/GNU_Compiler_for_Java

ГНУ компилятор для Java (GCJ) является свободным компилятор для языка программирования Java и часть GNU Compiler Collection

+1

Прежде чем вы это сделаете, см. [Является ли компилятор GNU Java GCJ мертвым?] (Http://stackoverflow.com/questions/4035538/is-gnus-java-compiler-gcj-dead/4040404#4040404) Также на странице [GCJ News ] (http://gcc.gnu.org/java/), который не обновлялся с 2009 года. – EJP

0

Если ваше приложение не делает использование новейших стандартов языка Java вы можете используйте gcj для создания двоичного файла. Но, пожалуйста, подумайте, что gcj - довольно старый продукт, который не обновлялся годами. Поддержка новых версий Java отсутствует, то project page состояния:

... была объединена с GNU Classpath и поддерживает большинство 1.4 библиотек плюс некоторые дополнения 1.5.

Код, созданный gcj, может быть значительно медленнее, чем код, выполняемый под Javascript Hotspot, и создает довольно большие двоичные файлы при статистической компоновке.

Другой вариант - связать Jre и вашу банку с исполняемым файлом. Для этой задачи существует несколько программ, один из них - launch4j (http://launch4j.sourceforge.net).

Вы также можете предоставить Java самостоятельно, так как он не должен быть установлен и может быть помещен в тот же каталог, что и ваша банка. Если вы используете Oracles JRE, проверьте Eula, если это разрешено связывать его таким образом. Если нет, вы можете использовать OpenJdk.

+0

GCJ находится на уровне менее 1,5. Основные части 1.3 не являются полными, то есть 1.3 и 1.4. – EJP

+0

@EJP: лучше сейчас? ;-) – Marged

4

В Java 8 вы можете создать так называемые «автономные пакеты» для Windows/Linux/Mac, которые на самом деле являются приложениями Java в комплекте с JRE. чтение

Будущее:

https://docs.oracle.com/javase/8/docs/technotes/guides/deploy/self-contained-packaging.html

https://docs.oracle.com/javase/8/docs/technotes/guides/deploy/packager.html

https://docs.oracle.com/javase/8/docs/technotes/tools/unix/javapackager.html

Также может быть стоит упомянуть загодя (АОТ) Java компиляторы, такие как Excelsior JET: http://www.excelsiorjet.com/

+0

Я думаю, что самодостаточные пакеты - лучший вариант: стандартный, без затрат и делает работу. Кроме того, вам не нужен источник, он работает на JAR – Marged

+0

'javapackager' был доступен в Java 7, но он назывался' javafxpackager'. –

+0

Вот пример 'javapackager': http://stackoverflow.com/a/34253042/597657 –

Смежные вопросы