Запустіть програму Windows із власною змінною середовища


16

Моя JAVA_HOMEмашина на моїй розробці - це Windows 7 Pro 64 Bit - вказує на 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").


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"

4

Зауважте, що setце лише тимчасово, тому ви можете просто помістити в партію таке:

set JAVA_HOME=
program.exe
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.