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").


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”.


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"

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.