java - 如何在Windows启动时独立于系统启动java应用程序

标签 java windows registry

我想在启动时在 Windows 下自动运行 Java 应用程序,但不依赖于特定的 Windows 或特定的 JRE 版本。

通常,在 Windows 登录时运行程序的一个好方法是在下面添加一个注册表项

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 

但是当 Windows 尝试运行注册表 RUN 部分中列出的程序时,系统 PATH 似乎没有被评估。

所以这两个条目都有效:

"C:\Program Files\Java\jdk1.8.0_111\bin\javaw" -jar c:\path\to\java.jar
"C:\ProgramData\Oracle\java\javapath\javaw" -jar c:\path\to\java.jar

但是这个没有出现:

javaw -jar c:\path\to\java.jar

现在,后者在控制台窗口中手动输入时可以工作,因为所需的 PATH 存在并被评估:

PATH=....;C:\ProgramData\Oracle\Java\javapath;....

现在,我希望从自动安装程序添加注册表项,并且希望将其形成“独立于 Windows 系统”(从 Vista 到 Win 10,而且不依赖于 Windows 系统的版本)安装了 JRE)。所以我不知道 JRE 的一般路径,因此我无法将特定的 RUN 命令添加到注册表。

有人知道如何将独立于系统的 JRE 调用正确添加到注册表的 RUN 部分吗?

我已经尝试过使用命令文件,例如内容为 java -jar file.jar 的“startup.cmd”,已将此文件的调用添加到注册表中,是的,工作正常,找到了 java,启动了应用程序,但是当使用通过这种方法,当 java 应用程序运行时,我有一个恼人的黑色命令终端窗口始终保持打开状态。

谢谢, 通博

最佳答案

更改你的startup.cmd,来自

java -jar file.jar

start java -jar file.jar

这将在新进程中启动 java.exe,并让您的批处理执行器终止。

关于java - 如何在Windows启动时独立于系统启动java应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40203115/

相关文章:

docker - 如何阻止 Docker 注册表?

java - 使用 Java 运行时添加注册表项,导致进程 reg.exe 永远运行

java - 任何可以快速打印 map 的实用程序

java-NoClassDefFoundERROR : LogManager

java - 将 java 对象从 javascript 传递到 java

java - MVP模式中的数据库查询在哪里实现?

windows - 我正在尝试为文件列表中的每个文件名添加前缀。如何确定哪些文件已经添加了该前缀?

windows - 如何在 Windows 的 Powershell 中获取 Dropbox 文件夹

PHP proc_open 不起作用 - 给我 "Missing handle qualifier in array"

windows - 从上下文菜单复制路径,编辑,用编辑的文本替换剪贴板