Avviare il programma Windows con una variabile d'ambiente personalizzata


16

Il mio JAVA_HOMEsul mio computer di sviluppo - che è Windows 7 Pro 64 bit - punta a un Java a 64 bit, e in generale va bene. Tuttavia, ho appena installato un programma - vale a dire, l'IDE FlashDeveloper - per il quale questa impostazione non va bene: è invece necessaria una Java a 32 bit e l' JAVA_HOMEimpostazione impedisce la raccolta della Java a 32 bit.

Quindi mi piacerebbe disinserire JAVA_HOMEpoco prima di avviare l'IDE Flash.

Un modo per raggiungere questo obiettivo sarebbe tramite uno script batch.

Ma non c'è un modo migliore? Ho cercato le varie schede della finestra delle proprietà del collegamento di Windows per tale opzione, ma sembra che non ce ne siano. (Ho scoperto, tuttavia, una casella di controllo per l'esecuzione del programma tramite il collegamento come Administrator.) Qualche suggerimento?

Aggiornamento: soluzione che ha funzionato per me

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

Questo aprirà un prompt dei comandi che posso quindi semplicemente chiudere. Puoi fare in modo che il collegamento abbia l'icona dell'eseguibile che stai chiamando dal prompt dei comandi, indicando alla shell tramite le proprietà del collegamento di cercare un'icona all'interno dell'eseguibile effettivo.

Non sono riuscito a far funzionare le soluzioni START, il che apre una nuova cmd.exefinestra sulla mia macchina quando viene passato il seguente (non ho idea del perché):

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

Devo dire che il mio cmd.exeè sintonizzato - che potrebbe avere un'influenza qua e là.

Aggiornamento relativo al startproblema: come si può apprendere seguendo il collegamento nei commenti, il startcomando utilizza i primi argomenti tra virgolette come titolo della finestra da creare ... Quindi quando si passa un percorso tra virgolette, verrà interpretato erroneamente come il titolo della nuova finestra. La soluzione alternativa consiste nel fornire un titolo esplicito come primo argomento, che può anche essere vuoto ( start "" "some path\with spaces").


2
Vedi stackoverflow.com/questions/72671/… per il numero iniziale
fglez

Risposte:


3

Ci scusiamo per aver rianimato un vecchio thread, ma ho pensato che questo potrebbe probabilmente aiutare le persone a cercare una soluzione a questo problema:

Puoi sovrascrivere il tuo percorso JAVA_HOME direttamente nel tuo FlexSDK. Per fare ciò, vai alla cartella 'bin /' del tuo SDK (dovrebbe essere in 'C: \ Programmi (x86) \ FlashDevelop \ Tools \ flexsdk \' se permetti al programma di installazione FD di configurarlo per te, altrimenti probabilmente sai dove si trova) e apri "jvm.config".


12

Penso che non pensi che tu possa farlo nel collegamento stesso, quindi il collegamento deve puntare a qualcosa che imposta la variabile e quindi lancia il tuo programma. Naturalmente, ci sono infiniti modi per farlo, ma lo script di comando è probabilmente il più semplice.

Se lo usi start command.exenel tuo file bat, visualizzerai una finestra di comando che lampeggia, ma non si attaccherà.

Aggiornamento: funziona effettivamente per inserire questo come obiettivo di scelta rapida.

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

Aggiornamento 2: che non ha funzionato con uno spazio nel percorso del comando. Ma questo fa!

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

4

Si noti che setè solo temporaneo, quindi è possibile inserire quanto segue in un batch:

set JAVA_HOME=
program.exe
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.