Запустить приложение Java при запуске Windows

У меня есть JAR файл, содержащий приложение Java. Как я могу начать работу с Windows, не требуя взаимодействия с пользователем?

Ответ 1

Создайте .bat файл и поместите его внутри:

javaw -Xmx200m -jar C:\Path\to\jarfile\TheJar.jar

Затем поместите файл .bat в папку автозагрузки Windows.

Еще одна вещь: существует разница между использованием java и javaw. Хотя java лучше, когда вы отлаживаете приложение, приложение печатает текст или что-то в этом роде, javaw лучше, когда вам это не нужно. Зачем? Поскольку java запускает java-программу, используя консоль, которая отображает все эти печати приложений (println, exception stacktraces и т.д.), А javaw не запускается на консоли.

Ответ 2

Ответ на этот вопрос может удовлетворить ваши потребности. Настройте приложение Java для запуска в качестве службы Windows, и вам должно быть хорошо.

Ответ 3

это просто, поскольку вам нужно добавить ярлык в

Windows 7 C:\users\All Users\Start Menu\Programs\Startup (Admin) или User home directory(%userProfile%)

Windows 10: В Run shell:startup

в нем свойство → ярлык → target → java.exe -jar D:\..\runJar.jar

ПРИМЕЧАНИЕ. Это будет работать только после входа в систему


С правом администратора

sc create serviceName binpath= "java.exe -jar D:\..\runJar.jar" Создает службу Windows

если вы используете таймаут, используйте cmd /c D:\JAVA7~1\jdk1.7.0_51\bin\java.exe -jar d:\jenkins\jenkins.war, но даже с этим вы получите тайм-аут, но в фоновом режиме запускается java.exe. Проверка в диспетчере задач


В некоторой ограниченной среде, как я был в корпоративной среде

Ошибка:

The service did not respond to the start or control request in a timely fashion

В этом случае

cmd /c D:\JAVA7~1\jdk1.7.0_51\bin\java.exe -jar d:\jenkins\jenkins.war

Это приведет к ошибке, если вы запустите ее вручную, но запустите ее в фоновом режиме.

ПРИМЕЧАНИЕ. Это будет запускаться при запуске входа в систему Windows (перед входом, на основе службы "Startup Type" )

Подробное объяснение создания службы Windows


Regedit

Примечание. Редактирование только расширенного пользователя

Выполнение только для текущего пользователя

HKEY_CURRENT_USER/SOFTWARE/MICROSOFT/WINDOWS/CURRENT_VERSION/RUN

Для запуска для всех пользователей

hkey_local_machine/SOFTWARE/MICROSOFT/WINDOWS/CURRENT_VERSION/RUN

Создайте строку с именем и контуром, используя указанную команду

Ответ 4

Ха-ха... легко! от запуска (u может нажать start + r) написать regedit тогда: HKey локальная машина- > программное обеспечение- > microsoft- > ​​windows- > текущая версия → run нажмите на него, а на другой панели нажмите "Ничего не нажимайте" и выберите add → string value Назовите его java дважды щелкните его и введите значение следующим образом: 'javaw -Xmx200m -jar C:\Path\to\jarfile\TheJar.jar' Надеюсь, что я могу помочь тебе ^ _ ^

Ответ 5

Если вы хотите сделать это программно с Java, вы можете писать непосредственно в папку автозагрузки Windows.

Здесь есть ссылка, как программно записывать в реестр Windows.

когда вы внедрили функцию для работы с реестром, чем то, что вам нужно, просто запустите этот код

String value = "\"javaw -jar " + System.getProperty("user.dir") + "\\myJar.jar\"";
WinRegistry.writeStringValue(WinRegistry.HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", "myJar autorun key", value);

где значение для ключа должно быть командой того, что запускает ваше приложение, например java -jar myJar.jar

удалить его из автозапуска просто

WinRegistry.deleteValue(WinRegistry.HKEY_CURRENT_USER, "Software\\Microsoft\\Windows\\CurrentVersion\\Run", "myJar autorun key");

Ответ 6

Чтобы создать сервис из любого исполняемого файла srvany.exe из Windows Resource Kits 2003 (обратите внимание на пробелы после =)::

cmd> sc create NAME binPath= "c:\Program Files\Windows Resource Kits\Tools\srvany.exe" ^
   type= own start= auto error= normal DisplayName= "NAME for services.msc"

Затем передайте оболочку srvany.exe:

cmd> reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\NAME\Parameters" ^
     /v "Application" ^
     /d "\"c:\Program Files\Java\jre7\bin\java.exe\" -cp c:\home\devel\service Main"

Выше вы видите синтаксис цитирования пробелов. Следующая служба запуска:

cmd> sc start NAME

Если вы сделаете ошибку, перепроверьте свои настройки с помощью:

cmd> reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\NAME" /s

и удалите службу:

cmd> sc delete NAME

и снова выполните шаги.

Посетите графический интерфейс пользователя services.msc и убедитесь, что служба procexp.exe действительно запущена.

См. также: создание службы с помощью sc.exe; как передать параметры контекста

ПРИМЕЧАНИЕ Все задействованные инструменты официальные Microsoft!!!

Ответ 7

Если вы не готовы самостоятельно настраивать конфигурацию или хотите иметь одинаковые функции на многоуровневых компьютерах, вы можете использовать Advanced Installer. Вы можете установить банки в Windows и установить параметры, запускающие вашу программу при запуске

Ответ 8

Используйте "winsw" - http://kenai.com/projects/winsw - который был написан для Glassfish v3, но хорошо работает с программами Java в целом.

Требовать выполнения среды выполнения .NET.