Запустите программу Windows с пользовательской переменной среды

16

Мой JAVA_HOMEна моей машине разработчика - которая является Windows 7 Pro 64 Bit - указывает на 64-битную Java, и это в целом нормально. Однако я только что установил программу, то есть IDE FlashDeveloper, для которой этот параметр не подходит: вместо этого требуется 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").

Lumi
источник
2
См. Stackoverflow.com/questions/72671/… для начала выпуска
fglez

Ответы:

3

Извините за возрождение старой темы, но я подумал, что это может помочь людям, которые ищут решение этой проблемы:

Вы можете переопределить свой путь JAVA_HOME прямо в своем FlexSDK. Для этого перейдите в папку «bin /» вашего SDK (она должна находиться в «C: \ Program Files (x86) \ FlashDevelop \ Tools \ flexsdk \», если вы позволяете установщику FD настроить его для вас, в противном случае вы, вероятно, знаете, где это) и откройте «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"
fstx
источник
4

Обратите внимание, что setэто только временно, поэтому вы можете просто поместить в пакет следующее:

set JAVA_HOME=
program.exe
Тамара Вийсман
источник