2014-10-17 3 views
1

В настоящее время я студент в средней школе, и я нашел конкурс программирования игр для клуба под названием FBLA. У меня было несколько вопросов о конкурсе, и поэтому я отправил их по электронной почте.Создание автономного Java EXE-файла

Я сделал сообщение ранее об обмене столами компьютерных наук, где вы можете посмотреть here.

Теперь, получив обратную связь с вопросом, кто-то прокомментировал, что я должен опубликовать свой следующий вопрос на этом веб-сайте.


Мой вопрос в том, как я смогу упаковать Java JAR-файл с родными библиотеками, а затем создать EXE из него, поэтому он будет автономным?

В моей теории я должен был бы создать банку и поместить необходимые исходные файлы, когда человек установит java на своем компьютере, в этот JAR-файл, а затем я могу использовать такую ​​программу, как FatJar или JSmooth.

Если я ошибаюсь, или как я мог бы понять немного больше о том, как работают баночки, это значительно поможет.


Обновление от 8 ноября 2014 года
Я, наконец, вернулся, чтобы возиться с ним, и я загрузил Launch4j. Я настраивал и делал все с этим, и я делаю исполняемый файл, который содержит все основные файлы java. Я удалил все мои программы, связанные с java, и когда я пошел запускать его, он все равно нуждался в java.

Еще раз заявить, что мне нужно случиться:
Что должно произойти, это исполняемый файл будет иметь возможность работать, даже если там не любая версия Java установлена ​​на компьютере судьи.

ответ

3

Я бы рекомендовал вам использовать launch4j. http://launch4j.sourceforge.net

Я использовал его для некоторых крупных проектов, и он работал очень хорошо.

Он может инкапсулировать вашу банку, зависимости и даже JRE в окна исполняемого файла. Он имеет графический интерфейс или вы можете запускать из командной строки.

+0

Прошло некоторое время с тех пор, как я столкнулся с этой проблемой, и я совсем недавно перепутал ее. Я загрузил Launch4j, и я побежал все. Я удалил каждый бит java с моего компьютера, чтобы протестировать простое приложение (просто открывает JFrame), и я вижу все файлы из моего каталога Java в исполняемом файле, но для него все еще требуется версия java, я сделал что-то не так? – CoderMusgrove

+0

Я помню, что некоторые проблемы с ним делали аналогичную вещь, когда не встраивали JVM, и это связано с значениями конфигурации версии min/max java. Указание min в качестве версии I и max как гипотетической java 9 работало вокруг нее. Не уверен, что это та же проблема, которую вы видите или нет, но если вы не указали версию min и max, я бы попробовал это. – user3357118

0

Для того, чтобы банка исполняемого файла, необходимо указать главный класс приложения, любые дополнительные фляги файлов, которые могут потребоваться и так далее в файле манифест банки:

Main-Class: MyAppMain 
Class-Path: MyLib.jar 

Затем вы используете утилиту баночку из Java SDK, чтобы упаковать свои классы и файлы ресурсов, указав параметр м и имя вашего файла манифеста:

jar cvfm MyApp.jar MyApp.mf *.class *.gif 

Это приведет к созданию MyApp.jar. Теперь, если вы наберете

java -jar MyApp.jar 

Java-пусковая установка будет читать манифест от MyApp.jar, место, которое файл иMyLib.jar на пути к классам и вызывать основной метод из класса MyAppMain.

Теперь, если ваше приложение Java нуждается в собственные библиотеках, также необходимо указать java.library.path свойства, указывающее на каталог (е), хранящие эти:

java -Djava.library.path=.\bin -jar MyApp.jar 

Для получения дополнительной информации и альтернативных решений, обратитесь к my article.

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