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

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

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"

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

我无法使涉及的解决方案发挥作用,当传递以下内容时会在我的计算机上START打开一个新窗口(不知道为什么):cmd.exe

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

必须说我的cmd.exe调整- 这可能会对某些地方产生影响。

有关该问题的更新start从评论中的链接可以看出,该start命令使用的第一个参数是引号作为标题要创建的窗口...因此,当您在引号中传递路径时,它将被误解为新窗口的标题。解决方法是提供显式标题作为第一个参数,该参数也可以为空(start "" "some path\with spaces")。

答案1

很抱歉重新提起旧话题,但我认为这可能有助于人们寻找解决此问题的方法:

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

答案2

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

如果您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"

答案3

请注意,这set只是暂时的,因此您只需将以下内容放入批处理中即可:

set JAVA_HOME=
program.exe

相关内容