繁体   English   中英

启动时启动Java应用程序

[英]Starting a Java application at startup

我有一个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注册表项。

希望有帮助! :)

信用

在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

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

HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM