PATH ortam değişkenimde olmayan bir programı neden yürütebilirim?


9

Komut neden merak java -versionolduğunu küresel erişilebilir?

Herhangi bir dizinden ve onun çalışma çalıştırmak olabilir:

resim açıklamasını buraya girin

O nasıl çalışır?

Sistem PATHdeğişkenim şöyle görünür:

C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;
%SystemRoot%\system32;
%SystemRoot%;
%SystemRoot%\System32\Wbem;
%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\

Bana gelince java.exe,%programfiles%\java\jre7\bin


2
Buraya bakın .
Daniel Beck

Şu anda elinizde ayrıntılar yok, bu yüzden bu bir yorum ve bir cevap değil, ancak java.exe(veya java.com, vb.) Sizin değil , PATHyürütülebilir yolları belirtebilirsiniz başka bir kayıt defteri girdisi var.
Mark Hurd

1
@MarkHurd cmd (ve CreateProcess), Uygulama Yolları kayıt defteri girdisini incelemez, yalnızca ShellExecute [ve dolayısıyla Çalıştır iletişim kutusu] bunu yapar.
Random832

Eğer beklendiği ettik @MarkHurd, öyle değil .. Benim yolum değişkeninde
Pacerier

1
@Pacerier Java yürütülebilir dosyası% SystemRoot% \ System32 \
Dwayne Hinterlang

Yanıtlar:


13

Genellikle, Windows tarafından tekrar tekrar kullanılan yürütülebilir dosyaların bulunacağı bir grup dizin vardır, ancak pratikte bir komutu global olarak kullanmanın veya kullanmamanın belirli bir nedeni yoktur. Geliştiriciler istedikleri yere "küresel" olarak dahil ederlerdi, bunu yapmakta özgürler. Herhangi bir komutu "global" olarak kullanmak istiyorsanız, komutunuzu "Windows Ortam Değişkeni" olarak eklemeniz gerekir . Bunu yapmak için, aşağıdaki yöntemleri kullanabilirsiniz :

  1. "Windows Sistem özellikleri" ile manuel olarak ekleme: resim açıklamasını buraya girin

  2. Setx.exe eklenti aracını kullanarak:

Standart Windows XP kurulumunun bir parçası değildir, ancak setx.exe adlı bir komut satırı aracı Windows XP Service Pack 2 Destek Araçları'nda bulunur. Bu araç, set değişkenini ortam değişkenlerinde kalıcı değişiklikler yapılabilmesi için genişletir. Örneğin, yola C: \ Yeni Klasör klasörü eklemek için komut

setx path "%PATH%;C:\New Folder" 
  1. Ortam Değişkenlerini Listeleme Komut Dosyaları:

"Ayarla" komutu, komut satırında, geçerli ortam değişkenlerinin bir listesini yapmak için metin dosyasına yeniden yönlendirmeyle birlikte kullanılabilir. Komut,

set > C:\env_list.txt 

"C: \ env_list.txt" dosya adı, istediğiniz herhangi bir adla değiştirilebilir.

Microsoft ayrıca, bu sayfadaki ortam değişkenlerini listeleyen bir VBScript'e de sahiptir .

  1. Ortam Değişkenleri için Kayıt Defteri Anahtarları:

Kayıt Defteri'ni düzenleme konusunda deneyimli olanlar için, ortam değişkenlerinde değişiklik yapmanın başka bir yolu vardır. Kullanıcı ortamı değişkenleri Anahtardaki Kayıt Defterinde saklanır:

HKEY_CURRENT_USER\Environment

Sistem değişkenleri anahtarda bulunur:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

Genişletilmesi gereken formdaki ortam değişkenlerinin (örneğin,% PATH%) kayıt defterinde REG_EXPAND_SZ kayıt defteri değeri olarak depolanması gerektiğini unutmayın. Kayıt Defteri'ni düzenlemek, öncelikle sistem yöneticileri tarafından kullanılan komut dosyaları içindir ve ortalama bir PC kullanıcısı için önerilmez.

Bununla ilgili daha fazla bilgiyi burada bulabilirsiniz.


1
Ancak, java.exe bulunur %programfiles%\java\jre7\bin. Bu klasör sistemimin Yol değişkeninde görünmüyor ..
Pacerier

7
Java.exe ayrıca PATH değişkeninizde görünen% SystemRoot% \ System32 \ konumunda de bulunur
Dwayne Hinterlang

5

"Global Komutlar" ortam değişkenleriniz tarafından belirlenir.

Hangi işletim sistemini kullandığınıza bağlı olarak onu ayarlamak için oldukça farklıdır.

En genel yol

"Bilgisayarım" ı sağ tıklayın "Özellikler" i seçin

Windows7'de soldaki bölmede "Gelişmiş Sistem Ayarları" nı seçmeniz gerekecektir.

Sistem Özellikleri iletişim kutusunu açtıktan sonra, "Gelişmiş" sekmesini seçin.

Altta "Ortam Değişkenleri" düğmesi var

Ortam Değişkenleri İletişim Kutusunda, kullanıcı başına veya tüm sistem için çevresel değişkenleri yapılandırabilirsiniz.

Örneğin, basitleştirilmiş Sistem Değişkeni "Yol" şuna benzer ...

C: \ Program Dosyaları \ Java \ jre6 \ bin ; C: \ Ruby19 \ bin;

Bu yollardaki yürütülebilir dosyalar doğrudan Komut Satırı'ndan çağrılabilir.

Çalıştır İletişim Kutusundan calc, mspaint, cmd'yi çağırabilmenizin nedeni, C: \ windows \ system32 dosyasının Path ortam değişkeninde olmasıdır.

Çevresel değişkenlere, mevcut olanı geçersiz kılmamaya ve yolları noktalı virgülle ayırmamaya dikkat ederek özel yollar ekleyebilirsiniz. ";"

Daha sonra, java -version komutu gibi tüm yolu yazmadan doğrudan bu komut satırından bir komut dosyasını çalıştırılabilir.

Daha fazla okuma için lütfen aşağıdaki bağlantılara bakın ...

Ortam Değişkenleri

Ortam Değişkenlerini Anlama ve Yapılandırma

Yeni Bir Kurulumda Java.exe Araması


3

whichMevcut PATHEXT uzantıları için PATH'de tüm komut isabetlerini gösteren basit bir yöntem:

@for %%I in ("%path:;=\" "%") do @for %%E in (%pathext:;= %) do @if exist "%%~dpI%1%%E" @echo %%~dpI%1%%E

Bunu koyun where.cmd( whicheğer alırsanız başka bir yerden gelmesine izin verin !) Ve ile çağırın where java.

Şimdi, yukarıda benim yorum, ben eğer önerdi javagelmez değil Gözlerinde farklı görünür PATH, check-in yapabilirsiniz HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths [ref] , ama sonra aslında bu çalışıyor, öyle sadece şeylerle komut satırı ile değil iş, kullanım o ShellExecuteExgibi Başlat Çalıştır ve startCLI komutu.


2

Bir komut girdiğinizde, kabuk PATH adında bir ortam değişkenine bakar (işletim sistemine bağlı olarak% PATH%, $ PATH). Girdiğiniz komutla eşleşen bir yürütülebilir dosyayla karşılaşıp karşılaşmadığını görmek için PATH üzerindeki her dizini sorgular. İlk bulduğu şey yürütülür.

PATH değişkenini ayarlamanın çeşitli yollarından bazıları için diğer yanıtlara bakın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.