Как создать EXE-файл в Java

Привет я хочу создать EXE-файл для своего приложения Java.

Я попробовал некоторым внешним программным обеспечением JEXECreator, успешно создал EXE-файл и то, что это хорошо работало в моей системе, когда я попробовал другой машиной, это не работает. Я получил следующую ошибку

    * The error occurred while running the application. The exit code is 0x10000223.
    * Contact the vendor of the application for troubleshooting.

    java.lang.ClassNotFoundException: com.sample.SampleMain
         at java.net.URLClassLoader$1.run(Unknown Source)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.net.URLClassLoader.findClass(Unknown Source)
         at java.lang.ClassLoader.loadClass(Unknown Source)
         at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
         at java.lang.ClassLoader.loadClass(Unknown Source)
         at java.lang.ClassLoader.loadClassInternal(Unknown Source)
         at java.lang.Class.forName0(Native Method)
         at java.lang.Class.forName(Unknown Source)
         at com.ucware.JEXEClassLoader.run(Unknown Source)
         at com.ucware.JEXEClassLoader.main(Unknown Source)
    **************************************

Я знаю, что существует что-то не так с путем к классу, который я установил.

На самом деле я хочу создать EXE-файл сам, не используя внешнего программного обеспечения.

Я нашел шаги в партии сайтов

Созданный файл манифеста по имени Sample.mft со следующим содержанием

         Manifest-Version: 1.0
         Main-Class: 
         Class-path:

В этом у меня есть некоторые сомнения,

  1. Как Основной Класс должен быть добавлен с полным именем пакета (com.sample. SampleMain) или одно только имя класса (SampleMain) или с расширением (SampleMain.class)

  2. Как путь к классу должен быть добавлен, у меня есть 4 класса Java и 2 банки в моем проекте. Как добавить все они в пути к классу и сделать, я должен добавить Java jdk в пути к классу.

  3. Где файл манифеста должен быть сохранен

  4. Каково должно быть расширение файла манифеста (MF или mft)

  5. В командной строке, из которого каталога я должен создать EXE-файл (от моей папки проекта или src папки или папки, которая содержит все классы Java),

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

(банка cmf Sample.mf Sample.jar Sample1.class Sample2.class Sample3.class Sample4.class jar1.jar jar2.jar) как это или (банка cvfm Sample.jar sample.mf *.class)

Когда я сделал что-то вроде этого, что я получаю банку вместо EXE-файла, Когда я выполняю банку в командной строке с помощью "Java - банка sample.jar", затем я получаю класс, не найденный исключением".

На самом деле то, как создать EXE-файл вместо файла банки, который означает только путем двойного щелчка по тому EXE-файлу, должно запустить мое приложение в любой машине.

Кто-либо может помочь мне сделать это?

Заранее спасибо.

6
задан SWDeveloper 25 June 2010 в 06:56
поделиться

5 ответов

У меня был положительный опыт работы с Excelsior JET . В отличие от gcj, он действительно работает, и время выполнения быстрее, чем у исполняемого файла .jar. Обратной стороной является то, что это не бесплатно.

1
ответ дан 17 December 2019 в 04:41
поделиться

Не могу говорить о JEXECreator, но я могу порекомендовать JSmooth ( http: //jsmooth.sourceforge. сеть / ). Я успешно использовал его для нескольких проектов (например, это приложение Java на основе SWT ).

1
ответ дан 17 December 2019 в 04:41
поделиться

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

-1
ответ дан 17 December 2019 в 04:41
поделиться

Я использую инструмент Ant под Eclipse IDE для работы с InnoSetup и Launch4J для создания EXE и его установщика, который также управляет classpath...

Руководство? Вы можете обратиться к:

http://www.eteks.com/tips/tipCreationExe.html (на французском)

3
ответ дан 17 December 2019 в 04:41
поделиться

Лично мне нравится JSmooth. Это просто обертка. Это означает, что это все еще Java-приложение. При выполнении exe он распакует jar во временную папку, а затем выполнит его с помощью javaw -jar ....

Второй вариант - gcj. Но это абсолютно плохой выбор. Это не оборачивает jar в exe, а действительно компилирует его в родной системный код. Но это сильно замедляет работу вашего приложения очень. Вы можете проверить некоторые результаты моего хронометража на этой теме.

1
ответ дан 17 December 2019 в 04:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: