Uruchom program Windows z niestandardową zmienną środowiskową

16

My JAVA_HOMEna mojej maszynie deweloperskiej - czyli Windows 7 Pro 64 Bit - wskazuje 64-bitową Javę i ogólnie jest w porządku. Jednak właśnie zainstalowałem program - na przykład FlashDeveloper IDE - dla którego to ustawienie nie jest w porządku: zamiast tego wymagany jest 32-bitowy Java, a JAVA_HOMEustawienie uniemożliwia pobranie 32-bitowej Java.

Więc chciałbym rozbroić JAVA_HOMEtuż przed uruchomieniem Flash IDE.

Jednym ze sposobów osiągnięcia tego jest skrypt wsadowy.

Ale czy nie ma lepszego sposobu? Przeszukałem różne zakładki okna Właściwości skrótu Windows w poszukiwaniu takiej opcji, ale wydaje się, że jej nie ma. (Odkryłem jednak pole wyboru do uruchamiania programu za pomocą skrótu jako Administrator.) Jakieś sugestie?

Aktualizacja: Rozwiązanie, które działało dla mnie

:: 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"

Otworzy się wiersz polecenia, który mogę następnie zamknąć. Możesz sprawić, aby skrót miał ikonę pliku wykonywalnego, który wywołujesz z wiersza polecenia, instruując powłokę za pomocą właściwości skrótu, aby szukał ikony wewnątrz właściwego pliku wykonywalnego.

Nie mogłem znaleźć rozwiązań związanych STARTz pracą, które otwierają nowe cmd.exeokno na moim komputerze, gdy przekazałem następujące (nie wiem dlaczego):

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

Trzeba powiedzieć, że mój cmd.exejest dostrojony - to może mieć wpływ tu i tam.

Aktualizacja dotycząca startproblemu: Jak można się dowiedzieć po linku w komentarzach, startpolecenie używa pierwszych argumentów w cudzysłowach jako tytułu tworzonego okna… Więc kiedy podasz ścieżkę w cudzysłowie, zostanie źle zinterpretowana jako tytuł nowego okna. Obejściem tego problemu jest podanie wyraźnego tytułu jako pierwszego argumentu, który może być również pusty ( start "" "some path\with spaces").

Lumi
źródło
2
Zobacz stackoverflow.com/questions/72671/…, aby uzyskać informacje na temat rozpoczęcia
fglez

Odpowiedzi:

3

Przepraszam, że ożywiłem stary wątek, ale pomyślałem, że może to pomóc osobom szukającym rozwiązania tego problemu:

Możesz zastąpić swoją ścieżkę JAVA_HOME bezpośrednio w FlexSDK. Aby to zrobić, przejdź do folderu bin / zestawu SDK (powinien znajdować się w folderze C: \ Program Files (x86) \ FlashDevelop \ Tools \ flexsdk \ ', jeśli zezwolisz instalatorowi FD na skonfigurowanie go, w przeciwnym razie prawdopodobnie wiesz gdzie to jest) i otwórz plik „jvm.config”.

Fred Deschenes
źródło
12

Myślę, że nie sądzę, że możesz to zrobić w samym skrócie, więc skrót musi wskazywać na coś, co ustawia zmienną, a następnie uruchamia program. Oczywiście istnieją nieskończone możliwości, ale skrypt poleceń jest prawdopodobnie najprostszy.

Jeśli użyjesz start command.exew sobie pliku nietoperza, zobaczysz migające okno poleceń, ale nie będzie się trzymać.

Aktualizacja: W rzeczywistości działa to jako cel skrótu.

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

Aktualizacja 2: To nie działało ze spacją w ścieżce polecenia. Ale to robi!

C:\Windows\System32\cmd.exe /c "set HOME=c:\ && path %path%;C:\Program Files (x86)\VideoLAN\VLC && start vlc.exe"
fstx
źródło
4

Pamiętaj, że setjest to tylko tymczasowe, więc możesz po prostu umieścić następujące partie:

set JAVA_HOME=
program.exe
Tamara Wijsman
źródło