2012-06-16 14 views
30

Windows XP'de Java JDK 6u33'ü yeni yükledim. PATH ortam değişkenini ayarlamadım bile, komut isteminde java -version'u çalıştırabiliyorum.
1. C:\Program Files\Java\jdk1.6.0_33\bin\java.exe
2. C:\WINDOWS\system32\java.exe"system32 java.exe" ve "Program Files Java jdk1.6.0_33 bin java.exe" arasındaki fark nedir?

: 2 java.exe olduğunu benim PC kontrol, ben buldum C:\WINDOWS\system32\java.exe

: Ben bu komutu for %i in (java.exe) do @echo. %~$PATH:i çalıştırdığınızda

, bu çıktıyı almak

system32\java.exe ve Program Files\Java\jdk1.6.0_33\bin\java.exe arasındaki fark nedir? for %i in (java.exe) do @echo. %~$PATH:i'u çalıştırdığımda neden sadece system32\java.exe gösteriliyor?

PATH ortam değişkeni için hala C:\Program Files\Java\jdk1.6.0_33\bin\ eklemem gerekir mi?

cevap

26

PATH değişkenini ayarlamak, javac ve jdk bin klasöründeki diğer program ve araçlara erişmenizi sağlar.

\windows\system32\ içinde java.exe sağlanmaktadır değil herkes sadece ve yüklü java bir versiyonunu (sonuncusu görünüyor yüklü) seçer (komut satırından) bir java programı çalıştırmak için bir PATH değişkeni ayarlamak gerekiyor ki Birden fazla (herkese açık) yüklenmişse sanal makineler (JVM).

ayrıca şeyleri zorlaştırmak için system32'de java.exe sadece bir kukla geçerli:

http://mindprod.com/jgloss/javaexe.html#MULTIPLES

Alıntı:

ileri bilgi için bu bağlantıya bakın. Kayıt defterinde görünüyor ve hangi gerçek java.exe'nin kullanılacağına karar veriyor. Son JVM'nin yüklü olması, daha eski olsa bile, kullanılan numara olacaktır. JVM'leri değiştirmek için, normalde istediğinizi yeniden yüklemelisiniz.

+11

Bu kukla "java.exe" değil ve yeniden yüklemeniz gerekmez, "java -version: -" 1.6 "MyClass" gibi -version parametresi ile gerekli sürümü basit bir şekilde geçirirsiniz. 1.6 JRE'yi zorlamak için Yüklü muliple sürümü olan bir iş istasyonunda (bkz. http://docs.oracle.com/javase/6/docs/technotes/tools/windows/java.html) – RealHowTo

+2

Elbette bir yeniden yükleme ihtiyacını bypass edebilirsiniz * eğer * komut satırı parametreleri geçirirseniz, ve tabii ki java.exe yerine java.exe, javaw.exe veya javaws tam yolunu da belirtebilirsiniz .exe). Yine de çoğu kullanıcı için çok "otomatik büyü" dir. –

10

(Cevap değil, Mattias'ın yanıtı hakkında bir yorum) Bu "kukla" iş hakkında emin değilim. Java.exe sistem32, normal bir dosya, hatta sembolik veya sabit bir bağlantı değildir. Mattias burada açıklanan soruna atıfta bulunabilir: http://msdn.microsoft.com/en-us/library/aa384187

Özetle, bir 64-bit sisteminiz ve bir Java yüklemeniz varsa, 32-bit uygulamalar java.exe (java.exe) görmez. C: \ Windows \ System32 \ 'de yüklenen exe, javaws.exe) çünkü C: \ Windows \ SysWoW64 \ C: \ Windows \ System32 olarak maskelenir. Yükleyici, SysWoW64'te java.exe'nin bir kopyasını koyamaz, dolayısıyla Java'yı başlatmaya çalışan 32 bitlik bir uygulama bunu yapamaz. Bu, explorer bir 64-bit uygulaması olduğundan ve "gerçek" system32 dizinini göreceğinden, explorer'ı kullanarak system32 dizinine bakarsa kullanıcıyı çözer.

+4

64-bit bir sistemde, genellikle Java'nın hem 64 bit hem de 32 bit sürümlerini yüklemeniz gerekir. –

+0

Ben böyle bir kurulum var, ama örneğin 64bit Eclipse 32bit Java çalışır, herhangi bir fikir neden? Java -version’ı çalıştırdığımda da 32 bit sürümü döndürür. Öncelikle 64bit'i kullanmak için değiştirmek mümkün mü? – Betlista

+0

Betlista, hem JDK'larınız var mı? – Urhixidur

İlgili konular