Исполняемый файл Launch4J не выполняется должным образом

Инструменты: Win 7, Launch4J 3.5, простое консольное Java-приложение Hello world (входит в JAR-файл)

Всем привет,

У меня есть базовое консольное приложение JAVA, которое не запрашивает никаких входных данных, просто простое приложение, которое открывает окно консоли и отображает текст Hello World.

Я сделал это так просто, что смогу поэкспериментировать с Launch4J 3.5 и создать исполняемый файл из файла jar.

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

Посмотрите мои настройки в Launch4J, я только заполнил основы, я пробовал с и без записи в поле манифеста Wrapper:

Выходной файл: C: \ Development \ SFDC \ ProjectX \ out \ exe \ ProjectX.exe

Jar: C: \ Development \ SFDC \ ProjectX \ out \ artifacts \ ProjectX_jar \ ProjectX.jar

Манифест оболочки : C: \ Launch4j \ manifest \ uac.exe.manifest (также пытался оставить это поле пустым)

Остальное все осталось по умолчанию.

3 ответа

Если при запуске вы имеете в виду двойной щелчок по нему, то нет - ничего, что вы можете увидеть, не произойдет; Вы должны "сказать" Java для запуска вашего приложения с соответствующей консолью. Для этого вы можете создать новый файл.bat: просто откройте текстовый редактор и вставьте следующую строку:

java -jar NAME.jar

где "ИМЯ" - это название вашей заявки. Сохраните текстовый файл в формате.bat, а не в.txt, и поместите его в тот же каталог, что и ваше приложение. Вы можете запустить свое приложение, дважды щелкнув этот файл.

Причина, по которой он не появляется в вашем диспетчере задач, заключается в том, что, вероятно (я не знаю), ваше приложение печатает только простое сообщение и больше ничего не делает. В неконсольном режиме он просто вызовет ваш метод print (println или любую другую консоль) без какого-либо визуального эффекта, поскольку нет консоли для печати сообщения. Однако в обоих случаях, если вы только печатаете что-то и не выполняете другие "последние" операции, такие как прослушивание ввода, ваша программа завершит работу, когда достигнет конца основного метода.

Да. Вам нужно использовать режим консоли. Вам также необходимо иметь какой-то способ держать окно консоли открытым, потому что оно закрывает консоль в момент завершения программы. использование scan.nextLine(); или же Thread.sleep(i) если вам действительно нужно.

Возможно, вам нужно использовать launch4j в режиме консоли, см. Ответ: lauch4j hello world program

Другие вопросы по тегам