Можно ли превратить приложение Java в автономный пакет, который запускается «из коробки»? Конечный пользователь не должен устанавливать какую-либо Java JRE, а установщик не должен содержать JRE и устанавливать его для пользователя.
Конечный дистрибутив должен содержать собственный исполняемый файл (возможно, по одному для каждой из Windows, Mac и Linux), а также обычные файлы данных и любые дополнительные JAR-файлы, если это необходимо. Я специально не ищу решение «один файл» - мне бы хотелось, чтобы файлы данных были беспрепятственными.
Как это может быть сделано?
источник
Для Mac см. Документацию Oracle для упаковки Java-приложения для Mac . Они настроили Java 7 так, что вы можете объединить среду выполнения в пакет приложений, содержащий ваши файлы jar (.app - это папка, которая на самом деле считается исполняемым файлом), что необходимо для распространения в Mac App Store. По сути, пакет .app делает в основном то же, что предлагает ответ Eren's JAVA_HOME, но упакован как «родное» приложение Mac.
Для распространения без Mac App Store вы можете избежать подписания приложения, сообщая пользователям Mountain Lion, что они могут обойти Gatekeeper , щелкнув правой кнопкой мыши (или Ctrl + клик) на вашем приложении и нажав «Открыть», когда они сначала откройте приложение. Это все равно предупредит их о том, что приложение не подписано, но в любом случае позволит им открыть его, а затем разрешит им дважды щелкнуть приложение для последующих открытий.
(примечание: вы также можете обойтись без маркировки сценариев оболочки в стиле Linux как исполняемой и затем создать пакет .app вокруг этого. NetBeans делает это на Mac и Linux, хотя и без JRE / JDK в комплекте)
источник