【发布时间】:2014-01-07 03:54:23
【问题描述】:
我有一个 Java 应用程序,它位于系统托盘中,我将其编译为可执行的 jar 文件。我想在我的程序中添加选项以添加到系统启动项中。
由于我不知道有任何统一的方法可以为所有操作系统执行此操作,因此我认为我必须为我打算支持的每个操作系统编写代码来执行此操作,因此我从 Windows 开始。
当我尝试使用 the code available here 将其添加到 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] 的注册表时,我发现在 Windows 7 和 8 下,除非我具有管理员权限(通过从提升的命令提示符运行),否则我对注册表的编辑不适用.
然后我花了一天的时间试图弄清楚如何让 Jar 以管理员权限重新启动,然后我放弃了那个 hacky 解决方法。
我想要完成的任务能否完成?如果可以,如何完成?
【问题讨论】:
-
你看过Apache Commons Daemon吗?
-
@ElliottFrisch 我没有,但乍一看似乎需要在用户计算机上安装二进制软件。理想情况下,我想要一个可以完全包含在我的 jar 中的解决方案。
-
@MikeB 不知道我的搜索中没有出现那个。我发现许多其他类似的提到注册表但我没有听说他们在那里提到的“自动运行文件夹”。我会检查一下。
-
您可能想要描述为什么您希望它为所有用户安装,否则您应该在
HKEY_CURRENT_USER下注册它,并至少为当前用户获取它。下一个问题是,当然,它需要海拔吗?如果是,则需要将其添加到 Windows 7 及更高版本的任务计划程序中