Как запускать Java-программы, щелкнув их значок в Windows?

Я написал программу Java, которая использует библиотеку Java Swing. Теперь я хотел бы запустить эту программу, дважды щелкнув исполняемый файл в Windows, как и любую другую программу с графическим интерфейсом. Как я могу это сделать?


person atakan    schedule 04.07.2012    source источник
comment
возможный дубликат компиляции java-программы в exe   -  person npinti    schedule 04.07.2012
comment
Я подозреваю, что многие люди не уверены, является ли ваш вопрос Как мне сделать .exe? или Как мне создать значок на рабочем столе для моего приложения? Я добавил снимок экрана с моим ответом, показывающий, что, я думаю, вы спрашиваете (2-й вариант). Пожалуйста, уточните вопрос.   -  person Andrew Thompson    schedule 04.07.2012


Ответы (12)


Поскольку он основан на Java и имеет графический интерфейс, очевидным ответом будет его развертывание с помощью Java Web Start.

Java Web Start (JWS) — это технология Oracle Corporation, используемая для запуска многофункциональных клиентских (Swing, AWT, SWT) настольных приложений непосредственно из сети или Интернета. Он предлагает установку «в один клик» для платформ, поддерживающих Java.

JWS предоставляет множество привлекательных функций, включая, помимо прочего, экраны-заставки, интеграцию с рабочим столом, сопоставление файлов, автоматическое обновление (включая отложенную загрузку и программный контроль обновлений), разделение исходных файлов и загрузки других ресурсов по платформам. , архитектура или версия Java, конфигурация среды выполнения (минимальная версия J2SE, параметры времени выполнения, ОЗУ и т. д.), простое управление общими ресурсами с помощью расширений.

Под «интеграцией с рабочим столом» считываются ярлыки на рабочем столе и элементы меню на поддерживаемых платформах.

Значки рабочего стола в Windows 7

Два значка справа (JotPad и Star Zoom Animation) – это приложения на основе Java. ., установленный с помощью Java Web Start. Поскольку JotPad находится в песочнице, пользователю будет предложено создать ярлык. Этот выбор не предлагается для приложений. с более высокими уровнями разрешений, поэтому имеет смысл устанавливать/удалять ярлыки и пункты меню с помощью IntegrationService — что позволяет приложению. (после запроса пользователя) для создания/удаления их во время выполнения.

person Andrew Thompson    schedule 04.07.2012
comment
Ах! Я забыл эту опцию... +1 ;) - person Harry Joy; 04.07.2012
comment
К сожалению, это уже не лучший вариант, поскольку система Java Web Start устарела с JDK 9. - person Tag Howard; 02.07.2020

Есть ряд вариантов:

  1. Создайте исполняемый файл jar вашего проекта. чтобы этот jar работал, у вас должен быть javaw в качестве приложения по умолчанию, чтобы открыть его.
  2. Создайте исполняемый файл вашего проекта.
  3. Создайте файл bat, который запускает ваш файл jar.

Взгляните на это: Как я могу преобразовать мою программу Java в файл .exe?

person Harry Joy    schedule 04.07.2012

вам нужно создать exe из программы Java.

Создание исполняемых файлов jar

  1. Во-первых, убедитесь, что у вас установлена ​​Java 1.2 или выше. Это средство недоступно в предыдущих версиях Java.
  2. Затем создайте рабочую систему Java. В общем, вы захотите поместить его в пакет. Для этого примера я создал простое приложение HelloWorld, которое выводит «Hello World» плюс первый аргумент командной строки и поместил его в пакет «psae». Поэтому файлы HelloWorld (HelloWorld.class, HelloWorld.java) располагались в каталоге psae. Я протестировал систему, чтобы убедиться, что она работает, прежде чем перейти к следующему шагу.
  3. В каталоге, в котором находится psae, создан файл с именем «mainClass». Этот файл содержит одну строку, указывающую, где основной класс находится в файле jar. Обратите внимание, что я использую спецификацию пакета. Вот единственная строка: Main-Class: psae.HelloWorld Примечание: убедитесь, что вы вводите возврат каретки после этой строки; некоторые системы Windows нуждаются в этом и сообщают об ошибке «Не удалось загрузить атрибут манифеста основного класса».
  4. Затем я создаю файл jar с именем psae.jar, используя команду «jar» в Java2. Я использую аргумент командной строки «m», чтобы указать файл манифеста mainClass, который добавляет в файл jar информацию о том, где будет найден основной класс. Вот команда jar: bertha:~ > jar cmf mainClass psae.jar psae
  5. Просто для удовольствия и чтобы проверить, что произошло, я печатаю оглавление только что созданного jar-файла. Вот команда и ее результат: bertha:~ > jar tf psae.jar META-INF/ META-INF/MANIFEST.MF psae/ psae/HelloWorld.java psae/HelloWorld.class
  6. Успешно создав файл jar, теперь я могу вызвать для него java2 с аргументом командной строки:

    bertha:~ > java -jar psae.jar Philip
    Hello World Philip
    
person Hemant Metalia    schedule 04.07.2012

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

  • Щелкните правой кнопкой мыши на рабочем столе, разверните параметр «Создать» и нажмите «Ярлык».
  • Введите «javaw.exe». Нажмите кнопку "Далее.
  • Назовите это как хотите. Нажмите «Готово».
  • Вы заметите недавно созданный ярлык на рабочем столе. Щелкните правой кнопкой мыши и выберите «Свойства».
  • В текстовом поле «Цель» добавьте «-jar path-to-your-jar.jar», где вы замените «path-to-your-jar.jar» фактическим путем к вашей банке.
  • Теперь вы также можете при желании изменить значок на любой значок, который вы хотите

Этот ярлык можно закрепить на панели задач и использовать из любого места (учитывая, что вы указали абсолютный путь к вашему JAR).

person ra4king    schedule 04.07.2012
comment
эй, приятель, хорошее решение, но у меня небольшие проблемы, когда я нажимаю на значок, отображается сообщение о том, что не удалось создать виртуальную машину Java. - person Saumil; 25.12.2013
comment
Это может работать для обычной Java-программы, но не для графического интерфейса. Проверил, на WIN 7 не работает. - person MaxZoom; 20.01.2015
comment
Работает нормально (будь то обычная программа или GUI не имеет значения, по ярлыку не могу сказать) под Windows 7 и Windows 10. - person Ti Strga; 10.04.2021

Есть несколько проектов, таких как http://jsmooth.sourceforge.net/ и http://launch4j.sourceforge.net/

person Yasei No Umi    schedule 04.07.2012

вы можете использовать что-то вроде Launch4j. также посмотрите на JSMooth.

Надеюсь, поможет

person Parth Doshi    schedule 04.07.2012

Есть два способа. Оба включают упаковку вашего кода в .jar.

Первый способ — создать реальный файл .exe с помощью такого инструмента, как Launch4j. Вам потребуется настроить такие вещи, как указать, какой класс выполнять, какой значок использовать, какая JRE в порядке, какие параметры JRE использовать и т. д.

Второй вариант — сделать сам .jar исполняемым. Вы делаете это, добавляя манифест в .jar. Манифест — это небольшой файл конфигурации, описывающий банку. Одним из атрибутов является Main-Class, который определяет точку входа. Другими словами, он говорит, какой класс имеет функцию main, которая должна вызываться, когда пользователь дважды щелкает файл. Вот базовое руководство по манифестам: http://docs.oracle.com/javase/tutorial/deployment/jar/manifestindex.html

Второй вариант проще в использовании, но пользователи гораздо чаще будут знать, что делать с .exe.

Обратите внимание: если какой-либо из подходов жалуется, что не может найти класс, убедитесь, что атрибут манифеста пути к классам соответствует вашему проекту.

person Adam    schedule 04.07.2012
comment
но пользователи гораздо чаще будут знать, что делать с .exe. Почему пользователь вообще должен видеть EXE или Jar? Используйте JWS, и Jar станет «невидимым». - person Andrew Thompson; 04.07.2012

Если у вас есть исполняемый jar-файл, просто щелкните его правой кнопкой мыши, удерживая клавишу Shift, и установите его для открытия с помощью javaw. Другой вариант (если вы хотите передать параметры в свое приложение) — создать файл .bat, в котором вы запускаете свое приложение через java или javaw.

person GETah    schedule 04.07.2012

Щелкните правой кнопкой мыши свой «проект» в eclipse и выберите «экспорт», затем выберите «Java-> Runnable Jar File», выберите имя проекта и завершите.

person MarsPeople    schedule 04.07.2012

Кажется, вы хотите развернуть и запустить отдельное приложение Swings. Будучи разработчиком Java, вы должны понимать всю мощь файлов jar. Они сами по себе исполняемые {поэтому нет необходимости создавать файлы .exe :)} .

Приведенный ниже код поможет вам создать файл jar.

Создание файла jar в командной строке

Start Command Prompt.
Navigate to the folder that holds your class files:
C:\>cd \mywork
Set path to include JDK’s bin.  For example:
C:\mywork> path c:\Program Files\Java\jdk1.5.0_09\bin;%path%
Compile your class(es):
C:\mywork> javac *.java
Create a manifest file:
C:\mywork> echo Main-Class: NameOfProject >manifest.txt
Create a jar file:
C:\mywork> jar cvfm NameOfProject.jar manifest.txt *.class
Test your jar:
C:\mywork> DanceStudio.jar

После создания банки просто дважды щелкните по ней, и все готово.

person Community    schedule 04.07.2012
comment
Он не создал значок, а просто папку jar, которую я могу открыть с помощью моего winrar. - person Saumil; 25.12.2013

Вы должны создать исполняемый файл jar. Для этого вы просто добавляете папку META-INF в банку, а затем добавляете текстовый файл MANIFEST.MF с двумя строками:

Manifest-Version: 1.0
Main-Class: your.package.YourMainClass
person Eugenio Cuevas    schedule 04.07.2012
comment
Вы также должны включить «Manifest-Version: 1.0» (без кавычек) в качестве первой строки;) - person ra4king; 04.07.2012

Вот как можно запустить программу Java, щелкнув ее правой кнопкой мыши (другими словами, из контекстного меню проводника Windows). Этот удобный трюк отлично подходит для начинающих, которым нужно тестировать свои простые программы на лету. Работает как на Win7, так и на XP.

[ВНИМАНИЕ: В зависимости от ситуации вам может потребоваться удалить директиву package из верхней части файла Java.]

Шаг 1. Создайте пакетный файл (например, RWJ.bat) в выбранной вами папке (например, в C:\Program Files\Java).

Шаг 2. Заполните RWJ.bat следующими командами (они будут работать так же хорошо, как и с простыми классами, но вы, конечно, можете настроить их в соответствии со своими потребностями, указав переключение компилятора/интерпретатора, передача аргументов, добавление отключение эха, удаление pause или что-то еще):

javac %1
java %~n1
pause

Первая команда передает полное имя файла, по которому вы щелкнули правой кнопкой мыши, компилятору Java; второй удаляет расширение файла и передает JVM только имя класса.

Шаг 3. Добавьте в реестр следующий ключ: HKEY_CLASSES_ROOT\*\shell\Run With Java, а затем создайте его команду (значение по умолчанию): C:\Program Files\Java\RWJ.bat %1.

Взлом реестра

Шаг 4. Запустите класс Java, щелкнув его правой кнопкой мыши и выбрав вариант Run with Java.

Щелчок правой кнопкой мыши по классу Java

Класс Java запущен и работает

Вот и все.

Другой способ запуска Java-программ путем указания и щелчка — использовать компиляторы AOT. Например, GCC имеет точку входа с именем GCJ, которую можно использовать для компиляции исходного кода как в байтовые коды, так и в стандартный исполняемый файл для вашей конкретной ОС.

И, наконец, вместо батников можно запускать WSH и т.п.

person Igor Soudakevitch    schedule 07.12.2015