Преобразование JApplet в .exe

У меня есть небольшой (Swing) JApplet, который отлично работает в Eclipse: он содержит метку, две кнопки и меню с минимальным пользовательским взаимодействием (при выборе пункта меню, цвета контейнера меняются). Я преобразовал это в .jar:

  • Я щелкнул правой кнопкой мыши имя класса (Sw3.java)
  • Выбранный «Экспорт», затем «Java», затем «JAR-файл»
  • Затем я выбрал текущее имя проекта как ресурс для экспорта, дважды щелкнув по нему «пакет по умолчанию», выбрал нужное имя класса из списка классов справа (Sw3.java)
  • Затем я отметил «Экспорт сгенерированных файлов классов и ресурсов», выбрал пункт назначения экспорта как «JAR-файл» и поместил его в «Документы» под названием «Sw3.jar». Я также выбрал «Сжатие содержимого файла JAR».
  • На следующем экране я проверил «Экспорт файла класса с ошибками компиляции» и «Экспорт файла класса с предупреждениями компиляции»

Я слышал, что правильный способ получить exe-файл - преобразовать .jar в .exe, поэтому я использовал приложение Launch4j с ранее полученным .jar:

  • На панели «Основные»: указан файл OUTPUT FILE: C: \ Users \ jerry \ Documents \ Sw3.exe и файл JAR: C: \ Users \ jerry \ Documents \ Sw3.jar.
  • Приоритет процесса NORMAL
  • Тип заголовка: GUI
  • MIN JRE Версия: 1.0.0
  • Я нажал «колесо» и выбрал Project.xml и получил успешное подтверждение.

У меня установлен JRE, поэтому .exe должен работать, но он не работает. Что я сделал не так? Я бы начал с изучения того, правильно ли получен .JAR, является ли это хорошим подходом и как бы я это проверить? Спасибо!

PS: После того, как я посоветовал использовать JFrame вместо JApplet, я сделал это и до сих пор ничего не происходит, когда я дважды нажимаю на .exe, чтобы открыть его. Это заставляет меня подозревать, что что-то не так в тех шагах, которые я описал.

1
добавлено отредактировано
Просмотры: 1
nl ja de
Спасибо, PhiLho, я использовал JApplet, потому что я новичок, практикую Swing и более комфортно с этим, чем с JFrame. Тем не менее, я добавил JFrame, как советовал martijno ниже и себя, и у меня все еще есть та же проблема.
добавлено автор Sam, источник
Благодаря PhiLo я следил за этим советом, выбрал второй пример из этой ссылки и просто добавил несколько дополнительных строк и компонентов (например, ярлык) jsong.ba.ttu.edu/ISQS2341/Fall05/Lecture08_Example.pdf . Это не сработало, поэтому я попробовал еще раз с более сложным примером JFrame, примером MyFrame из той же ссылки. Оба работают отлично, когда я запускаю их из Eclipse, так что должно быть что-то не так в шагах, которые я представил в исходном вопросе выше?
добавлено автор Sam, источник
Почему вы создали JApplet вместо простого JFrame? Апплеты - это особые звери, и в некоторых случаях их можно запускать на рабочем столе, их больше заставляют размещать на веб-странице (и это, по-видимому, выходит из моды).
добавлено автор PhiLho, источник
Я думал об использовании чистого JFrame. Я просто не знаю, может ли Launch4j обрабатывать JApplet (поиск в Google возвращает нулевое появление, что редко!). Вы можете попробовать запустить exe из командной строки с помощью опции - l4j-debug , возможно, вы получите соответствующее сообщение об ошибке.
добавлено автор PhiLho, источник

1 ответы

Добавьте основной метод в ваш апплет, чтобы поместить его внутри JFrame :

public static void main(String[] arg) {
  JFrame frame = new JFrame();
  JApplet applet = new Sw3();
  frame.getContentPane().add(applet);
  frame.pack();
  frame.setVisible(true);
  applet.init();
  applet.start();
}

В диалоговом окне экспорта JAR Eclipse после экрана «Параметры упаковки JAR» (тот, который содержит файлы «Экспорт файлов классов с ошибками и/или предупреждениями», которые вы упомянули выше), нажмите next (а не отделка ). Выберите «Сгенерировать файл манифеста» и введите полное имя класса (т. Е. Включая пакет) вашего основного класса:

Generate manifest with Main-class attribute from Eclipse JAR export

2
добавлено
Спасибо, Мартиньо, я добавил основной метод с помощью JApplet applet = new Sw3 (); приспособиться к моей ситуации и снова пройти все шаги, как это было представлено в моем первоначальном вопросе; однако я все еще не вижу никаких изменений, нет. Если я дважды щелкнул .exe, чтобы открыть его, ничего не происходит.
добавлено автор Sam, источник
Я думаю, что я делаю это на 3-м шаге, но не уверен, что это то, о чем вы говорите: [Я выбрал текущее имя проекта как ресурс для экспорта, дважды щелкнул по нему «пакет по умолчанию», выбрал желаемое имя класса (класс JFrame) из списка классов справа.] На последнем этапе экспорта JAR я также увидел «Определить манифест», выбранный по умолчанию, и оставил его как таковой. «Использовать существующий манифест из рабочего пространства» - это второй вариант. Возможно, JAR генерируется неправильно.
добавлено автор Sam, источник
О, мой, это сработало, я должен помнить этот шаг отныне и добавить его в процедуру, большое спасибо, я действительно счастлив сейчас! Ты потрясающий!
добавлено автор Sam, источник
Вы указываете класс, который содержит основной метод (ваш класс апплета, возможно) в манифесте jar?
добавлено автор martijno, источник
Редактирование моего ответа ... зависание.
добавлено автор martijno, источник