Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > *.exe файл для Java-программы


Автор: Vipash 23.7.2016, 17:52
Всем привет. Столкнулся с такой проблемой. Есть программа, написанная на языке Java, имеется исполняемый jar файл. Воспользовавшись инструментом Launch4j, упаковал jar в исполняемый exe файл. Из командной строки запуск *.exe файл работает (java -jar *.exe), а вот при двойном нажатии на сам *.exe файл, он не запускается! Объясните почему и что необходимо сделать для запуска *.exe файла?

Автор: Vipash 23.7.2016, 21:12
Нашел следующий вариант решения, создаем файл *.bat, записываем в него следующую строку: java -jar имя_файла.exe и запускаем файл *bat. Открывается консоль и выполняется программа. НО! Как все таки запустить программу при двойном нажатии *.exe  файла,  при этом не создавая дополнительных файлов?

Автор: LSD 25.7.2016, 12:33
Проблема только с exe файломи созданными  Launch4j? Или вообще с любыми?

Автор: Vipash 25.7.2016, 18:34
при использовании Excelsior JET Evaluation для компиляции приложений Java в Windows создается как полноценный инсталлятор, так и "врапер", и все работает исправно, а вот при создании exe файла через Launch4j почему то exe файл запускается только через командную строку или способом, указанным выше (.bat файл)

Автор: LSD 26.7.2016, 11:38
Ты уверен, что это вообще exe файл?
Ну и вообще, надо бы больше информации. Что значит "не запускается", ошибка или еще что-то.

Автор: Vipash 27.7.2016, 23:16
после твоих слов уже не уверен, но: свойства -> тип файла -> Приложение (.exe) 
через командную строку этот файл запускается (java -jar имя_файла.exe)
"Что значит "не запускается", ошибка или еще что-то." - ничего не происходит, абсолютно, по крайней мере я так визуально наблюдаю 

Автор: LSD 28.7.2016, 13:13
Возьми какой нибудь анализатор EXE PE файлов и посмотри этот EXE он вообще валидный.

Автор: _zorn_ 31.7.2016, 16:41
java -jar имя_файла.exe
Что то вы какими то ###инструментами пользуетесь. Во первых так запускается обычный jar, во вторых, чтобы запустить ява программу нужно тащить за собой всю виртуальную машину явы. Это минимум нескольколько мегабайт присоседиться должно (которые потом во временную директорию распакуются и запустят твой jar). Короче не тот язык для "ехе".

Автор: Vipash 1.8.2016, 00:28
"Во первых так запускается обычный jar" - согласен
"во вторых, чтобы запустить ява программу нужно тащить за собой всю виртуальную машину явы" - имеется таковая
"Короче не тот язык для "ехе"" - условие задачи такое
p.s. не надо искать причину, надо искать решение

Автор: _zorn_ 2.8.2016, 20:14
Решение ?
Тупо рар архив со скриптом после запуска. Вроде он такое позволяет.
Распаковываешь всю JRE рядом с прогой (ты знаешь путь из скрипта) и создаешь ярлык на "c:/program files/proga/jre/bin/java -jar c:/progrom files/progra/proga.jar"
только не забудь что пробелы хреново обрабатываются...

ЗЫ. Я имею ввиду самораспаковывающийся sfx

Автор: SVN74 2.8.2016, 21:40
Может все таки использовать установщик?
  https://netbeans.org/kb/docs/java/native_pkg_ru.html#instse

Автор: LSD 3.8.2016, 11:18
Цитата(Vipash @  1.8.2016,  01:28 Найти цитируемый пост)
надо искать решение

Ты смотрел что с exe?

Автор: Vipash 3.8.2016, 17:13
Цитата

Ты смотрел что с exe? 

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

Автор: LSD 3.8.2016, 19:09
Цитата(Vipash @  3.8.2016,  18:13 Найти цитируемый пост)
с точки зрения системы мой файл вполне валиден, раз он запускается через командную строку

Запускается как? 
Код

java -jar *.exe

это не запуск exe файла.

Выложи его уже куда нибудь.

Автор: Vipash 3.8.2016, 20:56
Цитата

Выложи его уже куда нибудь.

http://dropmefiles.com/qKOsz

Автор: AlexeyVorotnikov 4.8.2016, 11:24
Попробуйте пересоздать exe, указав в конфигурационном файле launch4j
<headerType>console</headerType>
Или, если вы пользуетесь GUI, на вкладке Header необходимо выбрать кнопочку Console.

Автор: LSD 4.8.2016, 13:49
Блин. smile  Надо же предупреждать, что это консольное приложение.

Делай как AlexeyVorotnikov, сказал.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)