使用自定义环境变量启动Windows程序


16

JAVA_HOME在我的开发机上(Windows 7 Pro 64位)指向64位Java,通常也可以。但是,我刚刚安装了一个程序-例如FlashDeveloper IDE-对此设置不适合:相反,需要使用32位Java,并且该JAVA_HOME设置可防止拾取32位Java。

因此,我想JAVA_HOME在启动Flash IDE之前取消设置。

实现此目的的一种方法是通过批处理脚本。

但是没有更好的方法吗?我在Windows快捷方式属性窗口的各个选项卡中搜索了此类选项,但似乎没有任何选项。(但是,我确实发现了一个通过快捷方式运行程序的复选框,为Administrator。)有什么建议吗?

更新:对我有用的解决方案

:: type "C:\Program Files (x86)\FlashDevelop\FlashDevelop.bat"
@ECHO OFF
SETLOCAL
REM Prevent wrong 64-bit JVM from being picked up:
SET JAVA_HOME=
CALL "%~dpn0.exe"

这将打开一个命令提示符,然后我可以将其关闭。您可以通过命令快捷方式属性指示外壳在实际的可执行文件中查找图标,从而使快捷方式具有从命令提示符处正在调用的可执行文件的图标。

我无法获得涉及START工作的解决方案,cmd.exe当通过以下命令(不知道为什么)时,这将在我的计算机上打开一个新窗口:

start "C:\Program Files (x86)\FlashDevelop\FlashDevelop.exe"

必须说我cmd.exe调谐 -可能会在这里和那里产生影响。

关于此start问题的更新:可以通过注释中的链接了解到,该start命令使用引号中的第一个参数作为要创建的窗口的标题 ...因此,当您在引号中传递路径时,它将被误解为新窗口的标题。解决方法是提供一个明确的标题作为第一个参数,也可以为空(start "" "some path\with spaces")。


Answers:


3

很抱歉恢复旧线程,但我认为这可能会帮助人们寻找此问题的解决方案:

您可以直接在FlexSDK中覆盖JAVA_HOME路径。为此,请导航至SDK的“ bin /”文件夹(如果要让FD安装程序为其设置,则应位于“ C:\ Program Files(x86)\ FlashDevelop \ Tools \ flexsdk \”中,否则您可能知道的位置),然后打开“ jvm.config”。


12

我认为您不能在快捷方式本身中执行此操作,因此快捷方式需要指向设置变量的内容,然后启动您的程序。当然,有无数种方法可以执行此操作,但是命令脚本可能是最简单的。

如果start command.exe在bat文件中使用,您将看到一个闪烁的命令窗口,但它不会停留在周围。

更新:实际上可以将其作为快捷方式目标。

C:\Windows\System32\cmd.exe /c "set HOME=c:\ && start C:\Windows\System32\notepad.exe"

更新2:不适用于命令路径中的空格。但是,确实如此!

C:\Windows\System32\cmd.exe /c "set HOME=c:\ && path %path%;C:\Program Files (x86)\VideoLAN\VLC && start vlc.exe"

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.