Исполняемый файл 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