Starten Sie das Windows-Programm mit einer benutzerdefinierten Umgebungsvariablen

16

Mein JAVA_HOMEauf meinem Entwicklercomputer - das ist Windows 7 Pro 64 Bit - zeigt auf ein 64-Bit-Java, und das ist im Allgemeinen in Ordnung. Ich habe jedoch gerade ein Programm installiert, nämlich die FlashDeveloper-IDE, für das diese Einstellung nicht in Ordnung ist: Stattdessen ist ein 32-Bit-Java erforderlich, und die JAVA_HOMEEinstellung verhindert, dass das 32-Bit-Java erkannt wird.

Daher möchte ich die Einstellung JAVA_HOMEkurz vor dem Starten der Flash-IDE aufheben.

Eine Möglichkeit, dies zu erreichen, wäre ein Batch-Skript.

Aber gibt es keinen besseren Weg? Ich habe die verschiedenen Registerkarten des Windows Shortcut-Eigenschaftenfensters nach einer solchen Option durchsucht, aber es scheint keine zu geben. (Ich habe jedoch ein Kontrollkästchen zum Ausführen des Programms über die Verknüpfung als gefunden Administrator.) Irgendwelche Vorschläge?

Update: Lösung, die bei mir funktioniert hat

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

Das öffnet eine Eingabeaufforderung, die ich dann einfach schließen kann. Sie können festlegen, dass die Verknüpfung das Symbol der ausführbaren Datei enthält, die Sie über die Eingabeaufforderung aufrufen, indem Sie die Shell über die Verknüpfungseigenschaften anweisen, nach einem Symbol in der tatsächlichen ausführbaren Datei zu suchen.

Ich konnte die damit verbundenen Lösungen nicht STARTzum Laufen bringen, was ein neues cmd.exeFenster auf meinem Computer öffnet, wenn Folgendes übergeben wird (keine Ahnung warum):

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

Muss sagen , dass mein cmd.exewird abgestimmt - die einen Einfluss hier haben könnte und da.

Update zum startProblem: Wie Sie dem Link in den Kommentaren entnehmen können, verwendet der startBefehl die ersten Argumente in Anführungszeichen als Titel der zu erstellenden Fenster. Wenn Sie also einen Pfad in Anführungszeichen übergeben, wird er als falsch interpretiert Titel des neuen Fensters. Problemumgehung: Geben Sie als erstes Argument einen expliziten Titel an, der auch leer sein kann ( start "" "some path\with spaces").

Lumi
quelle
2
Siehe stackoverflow.com/questions/72671/… für die
Startausgabe

Antworten:

3

Es tut mir leid, dass Sie einen alten Thread wiederbelebt haben, aber ich habe mir gedacht, dass dies möglicherweise bei der Suche nach einer Lösung für dieses Problem hilfreich sein könnte:

Sie können Ihren JAVA_HOME-Pfad direkt in Ihrem FlexSDK überschreiben. Navigieren Sie dazu zum Ordner "bin /" Ihres SDK (sollte sich unter "C: \ Programme (x86) \ FlashDevelop \ Tools \ flexsdk \" befinden), wenn Sie dies vom FD-Installationsprogramm für Sie einrichten lassen, andernfalls wissen Sie es wahrscheinlich wo es ist) und öffne 'jvm.config'.

Fred Deschenes
quelle
12

Ich denke nicht, dass Sie es in der Verknüpfung selbst tun können, also muss die Verknüpfung auf etwas zeigen, das die Variable festlegt, und dann Ihr Programm starten. Natürlich gibt es unendlich viele Möglichkeiten, aber das Befehlsskript ist wahrscheinlich das einfachste.

Wenn Sie start command.exein Ihrer Fledermaus-Datei verwenden, wird ein Befehlsfenster angezeigt, das jedoch nicht angezeigt wird.

Update: Es funktioniert tatsächlich, um dies als ein Verknüpfungsziel zu setzen.

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

Update 2: Das hat mit einem Leerzeichen im Befehlspfad nicht geklappt. Aber das tut es!

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

Beachten Sie, dass dies setnur vorübergehend ist. Sie können also einfach Folgendes in einen Stapel einfügen:

set JAVA_HOME=
program.exe
Tamara Wijsman
quelle