我想在启动时在 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/