14

Мой 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").

3 ответа3

11

Я думаю, не думаю, что вы можете сделать это в самом ярлыке, поэтому ярлык должен указывать на то, что устанавливает переменную, а затем запускает вашу программу. Конечно, есть бесконечные способы сделать это, но командный скрипт, вероятно, самый простой.

Если вы используете 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
3

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

Вы можете переопределить свой путь JAVA_HOME прямо в своем FlexSDK. Для этого перейдите в папку «bin /» вашего SDK (она должна находиться в «C:\Program Files (x86)\FlashDevelop\Tools\flexsdk\», если вы позволяете установщику FD настроить ее для вас, в противном случае вы, вероятно, знаете, где это) и откройте «jvm.config».

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .