2

私はJavaアプリケーションを持っています。

アプリケーションには、アプリケーションを起動時に開始するかどうかを決定する設定があります。

現在、スタートアップアイテムフォルダーにショートカットを配置/削除することでこれを実現しています。

ただし、この動作を処理するためのより良い方法があるかどうかは疑問です。

編集

はい、Windowsです。前にそれをクリアしていないことを申し訳ありません。

アプリケーションには、ユーザーがアクションをトリガーできる UI があり、アプリケーションは実行中にバックグラウンドで定期的にいくつかのタスクを実行します。

@Peter、アプリケーション内からコードを使用してレジストリを変更するにはどうすればよいですか? そのアプローチは Windows のすべてのバージョンと互換性がありますか?

4

3 に答える 3

2

以下は、アプリケーション内からどのように実行できるかを示す小さなサンプル スニペットです。

static final String REG_ADD_CMD = "cmd /c reg add \"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\" /v \"{0}\" /d \"{1}\" /t REG_EXPAND_SZ";
private void exec(String[] args) throws Exception
{
    if (args.length != 2)
        throw new IllegalArgumentException("\n\nUsage: java SetEnv {key} {value}\n\n");
    
    String key = args[0];
    String value = args[1];
    
    String cmdLine = MessageFormat.format(REG_ADD_CMD, new Object[] { key, value });
    
    Runtime.getRuntime().exec(cmdLine);
}

すべてのバージョンの Windows で同じ Startup\Run レジストリ エントリが使用されるため、これはすべてのバージョンの Windows で機能すると確信しています。

それが役立つことを願っています! :)

クレジット

于 2013-07-25T08:16:31.047 に答える
0

Windows では、オープン ソースのJava Service Wrapperを使用して、アプリケーションを起動時に自動的にセットアップできるウィンドウ サービスとして作成しました。

What you need to do is to download latest wrapper.exe and create wrapper.config file put all the configuration like Main class any VM arument other parameters in defined standards and create a window service by this exe

于 2013-07-24T15:42:15.027 に答える