在启动时启动Java应用程序

时间:2013-07-24 15:36:53

标签: java windows startup

我有一个Java应用程序。

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

目前,我通过在StartUp项目文件夹中放置/删除快捷方式来实现此目的。

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

编辑

是的,它是Windows。很抱歉之前没有清除它。

应用程序具有用户可以触发操作的UI,应用程序也会在运行时定期在后台运行一些任务。

@Peter,我怎么能用应用程序中的代码更改注册表?该方法是否与所有版本的Windows兼容?

3 个答案:

答案 0 :(得分: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注册表项。

希望有所帮助! :)

Credit

答案 1 :(得分: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

答案 2 :(得分:0)

使用注册表在启动时启动程序,然后它将显示在msconfig通过Run提供的列表中。 使用此注册表路径

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run