启动时启动Java应用程序


问题内容

我有一个Java应用程序。

该应用程序具有一个设置,该设置决定该应用程序是否在启动时启动。

目前,我可以通过在“启动项目”文件夹中放置/删除快捷方式来实现此目的。

但是,我想知道是否有更好的方法来处理此行为。

编辑

是的,它是Windows。抱歉,之前没有清除该内容。

该应用程序具有一个用户可以在其中触发动作的UI,并且该应用程序在运行时会定期在后台运行一些任务。

@Peter,如何在应用程序中使用代码更改注册表?该方法与所有版本的Windows兼容吗?


问题答案:

下面是一个小示例片段,说明如何从应用程序内部完成该操作

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注册表项。

希望有帮助!:)

信用