gpt4 book ai didi

java - 如何从 %PATH% 而不是当前文件夹运行程序

转载 作者:可可西里 更新时间:2023-11-01 11:12:23 24 4
gpt4 key购买 nike

如果我运行一个存在于 Windows %PATH% 中的程序,而当前文件夹中有一个同名程序,它将选择当前文件夹中的程序。有什么办法可以防止这种情况(忽略当前文件夹)?

我的问题的原因是我有一个 Java 程序,我已经将它放在注册表的 Run-key 中,如下所示:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
MyProgram = javaw -cp MyProgram.jar com.mycompany.MyProgram

问题是在我测试过的一台电脑上它不工作。它提示错误的 JRE 版本(1.7 而不是 1.8)。我发现在这台电脑上有人安装了 JRE 1.8 而不是 1.7,但是 1.7 的文件仍然留在 Windows\System32 中。

如果我在命令提示符下手动启动 javaw -cp MyProgram.jar com.mycompany.MyProgram 它会起作用,除非我将 Windows\System32 作为当前文件夹。

问题是,当 Windows 在启动过程中启动程序时(从注册表中的运行键)它有 System32 作为当前文件夹,因此它将使用错误的 JRE 版本。

我可以通过从 System32 中删除不正确的 exe 文件来修复此特定计算机上的此问题,但我希望它在其他人将其安装在其他地方时能够正常工作,而我想到的最佳方法是强制 Windows使用 %PATH%,但我不知道如何。

最佳答案

@echo off

set "to_run=javaw.exe"
for %%# in ("%to_run%") do set "ppath=%%~$PATH:#"
echo %ppath%
"%ppath%" -cp MyProgram.jar com.mycompany.MyProgram

有关 %~$PATH 的更多信息: 语法检查 for/?

关于java - 如何从 %PATH% 而不是当前文件夹运行程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30569905/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com