Luncurkan program Windows dengan variabel lingkungan kustom

16

Saya JAVA_HOMEdi mesin dev saya - yang merupakan Windows 7 Pro 64 Bit - menunjuk ke 64-bit Java, dan itu bagus secara umum. Namun, saya baru saja menginstal sebuah program - yaitu, IDE FlashDeveloper - yang pengaturannya tidak baik: Java 32-bit diperlukan sebagai gantinya, dan JAVA_HOMEpengaturan mencegah Java 32-bit diambil.

Jadi saya ingin menghapus JAVA_HOMEpengaturan sebelum meluncurkan IDE Flash.

Salah satu cara untuk mencapai ini adalah melalui skrip batch.

Tapi bukankah ada cara yang lebih baik? Saya mencari berbagai tab di jendela properti Windows Shortcut untuk opsi seperti itu tetapi sepertinya tidak ada. (Namun saya menemukan, kotak centang untuk menjalankan program melalui pintasan sebagai Administrator.) Ada saran?

Pembaruan: Solusi yang berfungsi untuk saya

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

Itu akan membuka prompt perintah yang kemudian bisa saya tutup. Anda dapat membuat pintasan memiliki ikon executable yang Anda panggil dari prompt perintah dengan menginstruksikan shell melalui properti pintasan untuk mencari ikon di dalam executable yang sebenarnya.

Saya tidak bisa mendapatkan solusi yang melibatkan STARTbekerja, yang membuka cmd.exejendela baru di komputer saya ketika melewati yang berikut (tidak tahu mengapa):

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

Harus mengatakan bahwa saya cmd.exeadalah disetel - yang mungkin memiliki pengaruh di sana-sini.

Pembaruan terkait startmasalah ini: Seperti yang dapat dipelajari dengan mengikuti tautan di komentar, startperintah tersebut menggunakan argumen pertama dalam tanda kutip sebagai judul jendela yang akan dibuat ... Jadi ketika Anda melewati jalur dalam tanda kutip, itu akan disalahartikan sebagai judul jendela baru. Solusi adalah dengan memberikan judul eksplisit sebagai argumen pertama, yang mungkin juga kosong ( start "" "some path\with spaces").

Lumi
sumber
2
Lihat stackoverflow.com/questions/72671/… untuk masalah awal
fglez

Jawaban:

3

Maaf telah menghidupkan kembali utas lama, tetapi saya pikir ini mungkin dapat membantu orang yang mencari solusi untuk masalah ini:

Anda dapat mengganti jalur JAVA_HOME Anda langsung di FlexSDK Anda. Untuk melakukan ini, navigasikan ke folder 'bin /' SDK Anda (harus berada di 'C: \ Program Files (x86) \ FlashDevelop \ Tools \ flexsdk \' jika Anda membiarkan pemasang FD mengaturnya untuk Anda, jika tidak, Anda mungkin tahu dimana) dan buka 'jvm.config'.

Fred Deschenes
sumber
12

Saya pikir jangan berpikir Anda bisa melakukannya di jalan pintas itu sendiri, jadi jalan pintas perlu menunjuk ke sesuatu yang menetapkan variabel, dan kemudian lauches program Anda. Tentu saja, ada cara tak terbatas untuk melakukan itu, tetapi skrip perintah mungkin paling sederhana.

Jika Anda gunakan start command.exedi file bat Anda, Anda akan mendapatkan jendela perintah berkedip dengan, tetapi itu tidak akan bertahan.

Pembaruan: Ini sebenarnya berfungsi untuk menempatkan ini sebagai target pintasan.

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

Pembaruan 2: Itu tidak berfungsi dengan spasi di jalur perintah. Tapi ini benar!

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

Perhatikan bahwa setini hanya sementara, jadi Anda bisa memasukkan yang berikut ini dalam satu batch:

set JAVA_HOME=
program.exe
Tamara Wijsman
sumber