2015-09-23 2 views
3

Есть ли способ связать приложение для загрузки весны в одну исполняемую банку, включая JRE?Объединение Java (JRE) в пакет с пружинным загрузочным пакетом/банку?

Я думаю, что я видел, кто-то делает что (Josh Long?), Что привело к банке можно начать через java -jar foo.jar и даже с ./foo.jar

Я гуглом для этого последнего часа, но не смог найти никакой документации по этому вопросу , кто-нибудь там, чтобы помочь мне?

EDIT:

Я только что нашел то, что я видел на конференции. spring-boot 1.3 вводит что-то называемое исполняемыми баночками, которое wrap the jar with a shell script. Включение этого позволяет запустить вашу банку, как ./my.jar, и привязать ее к системе инициализации unix. Однако вам все равно необходимо установить java на вашем хосте.

Включение этой функции в Gradle так же легко, как добавить это к вашему build.gradle

springBoot { 
    executable = true 
} 
+1

, что вы пытаетесь сделать, это проблема курицы и-яйца. Если JAR содержит JRE, как вы хотите запустить JAR? Какая операционная система должна работать? То, что вы, вероятно, ищете, является установщиком для Java-программ. Посмотрите здесь: http://stackoverflow.com/questions/184060/java-application-installers – Marged

+0

Итак, мы говорим о Linux-решении. Это похоже на тот трюк, который Oracle использует для своих установщиков Java или что они здесь делают: http://www.linuxjournal.com/content/add-binary-payload-your-shell-scripts – Marged

ответ

1

Вы должны подумать об использовании установщика/оболочки Java, который будет создавать собственный двоичный код, который содержит ваш код/​​jar и JRE (некоторые решения могут даже загрузить JRE для вас) Положительный побочный эффект заключается в том, что вы (если необходимо) могут создавать решения для Linux, Windows и Mac.

Если вы хотите, чтобы придерживаться простого Linux только решение, которое вы могли бы хотеть попробовать это: Bash script containing binary executable

+0

Я искал готовое решение, предлагаемое весной, которое, похоже, не существует. Так что это лучший ответ, принимая его как решение сейчас. – hennr

1

Propably вы используете Maven. Этот maven plugin позволяет вам создавать один файл jar со всеми зависимостями. Затем вы можете использовать такой инструмент, как jwrapper, который позволяет создавать исполняемый файл с встроенной JRE для многих платформ.

+0

ли это связывает JRE тоже ? – Marged

+0

Как я знаю, это не связывает JRE. – borysfan

+1

Тогда вы все еще считаете это подходящим ответом? ;-) – Marged

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