web-dev-qa-db-ja.com

Windowsの起動時にJava applicationを実行

Javaアプリケーションを含むJARファイルがあります。ユーザーとの対話を必要とせずにWindowsで起動するにはどうすればよいですか?

38
shan

.batファイルを作成して、これを内部に配置します。

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

次に、.batファイルをWindowsスタートアップフォルダーに入れます。

もう1つ:Javajavawの使用には違いがあります。アプリケーションをデバッグする場合はJavaが適していますが、アプリケーションはテキストなどを出力しますが、不要な場合はjavawが適しています。どうして? JavaはJavaそのアプリケーションのすべての出力(println、例外スタックトレースなど)を表示するコンソールを使用してプログラムを実行しますが、javawは実行しません。 tコンソールで実行します。

37
MikeKusold

ショートカットを入れる必要があるので簡単です

Windows 7_C:\users\All Users\Start Menu\Programs\Startup_(Admin)またはUser home directory(%userProfile%)

Windows 10:実行中_Shell:startup_

そのプロパティ->ショートカット->ターゲット-> _Java.exe -jar D:\..\runJar.jar_

注:これは、ログインした後にのみ実行されます


管理者権限あり

_sc create serviceName binpath= "Java.exe -jar D:\..\runJar.jar"_ Windowsサービスを作成します

timeoutを取得する場合は_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
_

上記のコマンドを使用して名前とパスで文字列を作成します

17
Ravi Parekh

この質問 への答えはあなたのニーズに合うかもしれません。 JavaアプリケーションをWindowsサービスとして実行するように設定すれば、準備完了です。

13
Stefan Kendall

ハハ...簡単! run(uはstart + rを押します)からregeditを書き込みます:HKey local machine-> software-> Microsoft-> windows-> current version-> runをクリックし、他のパネルで何も右クリックして追加を選択します- >文字列値名Javaダブルクリックして、次のように値を入力します。'javaw-Xmx200m -jar C:\ Path\to\jarfile\TheJar.jar ' ^ _ ^

7
user3379482

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");

[〜#〜] update [〜#〜]

Replace WinRegistry.writeStringValue with WinRegistry.setStringValue recent version of Java 1.8.x
6
Mior

任意の実行可能ファイルからサービスを作成するには、 Windows Resource Kits 20srvany.exeを使用します(=の後のスペースに注意してください)::

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

もう一度ステップを実行します。

GUI services.mscにアクセスし、procexp.exeサービスが実際に開始することを確認してください。

参照: sc.exeを使用してサービスを作成する;コンテキストパラメータを渡す方法

[〜#〜] note [〜#〜]関係するすべての機器はofficial Microsoft!!!

2
gavenkoa

自分で設定する準備ができていない場合、または複数のコンピューターで同じ機能を使用する場合は、 Advanced Installer を使用できます。 Windowsにインストールするjarをパッケージ化し、起動時にプログラムを実行するパラメーターを設定できます

0
Yanki Twizzy