Java neden c: \ Windows \ System32'dan çalıştırılmıyor?


0

Birkaç gün öncesine kadar, java uygulamalarını komut satırından çalıştırabildim, sonra bir şey bozuldu. Ben java.exe c: \ Windows \ System32 dan çağıramayan olmak sorunu aşağı takip etti. Tam yol adını (c: \ windows \ system32 \ java.exe) vermiş olsam bile " " c: \ Windows \ System32 \ java.exe "komutunu çalıştırmayacağım bile, iç veya dış komut, çalıştırılabilir program veya toplu iş olarak tanınmıyor dosya. " Aynı dizinde farklı bir isimle başa çıkmayı denedim ama yine de işe yaramadı. Sadece java.exe'ye farklı bir dizine kopyaladığımda ve bu dizini PATH'e koyduğumda sonunda işe yaradım, bu yüzden bu geçici çözüm çözümüm ama yine de neden c: \ Windows \ System32 dizininden çalıştırmayı durdurduğunu bilmek istiyorum. orada mutlu olman aylar!


Java.exe ilk etapta nasıl Windows \ System32 içine girdi emin değilim ama bu bir yükleme sorusu değildi. Neden java.exe bunun dışındaki herhangi bir dizinden çalıştırılabilir olduğunu bilmek istiyorum.
Onun bana

Oracle / Güneş java için, Windows yükleyici @Karan yapar içinde yürütülebilir bir kopyasını yerleştirmek C:\Windows\System32en azından benim Windows 7 makinede. Bu, tam yüklemeye ek olarak bulunurC:\Program Files\Java
Darth Android,

@DarthAndroid: Haklısınız, görünen o ki sistem32'de kukla bir java.exe kullanıyor .
Karan

Yanıtlar:


3

Sorununuz 64 bit vs 32 bit Java JRE yüklemesiyle ilgili olabilir. Görebildiğim yerde benzer problemler yaşıyordum

C:\Windows\System32\java.exe

ama çalıştıramadı. Dosyanın bir kopyası olması gerektiğini ima eden bir konu buldum

C:\Windows\SysWOW64\java.exe

64 bit Java'nın 32 bit bir uygulamadan çalıştırılması için.

Benim durumumda, bir kurumsal güvenlik yamasının kurulumumu etkilediğini biliyorum çünkü işe yaradı, yamanın çalışmasına izin verdikten hemen sonra işe yaramadı.


2

Java'yı komut satırından çalıştırmak istiyorsanız, yolunuza eklemelisiniz. Denetim Masası -> Sistem -> Gelişmiş Sistem Ayarları'na gidin, ardından Gelişmiş sekmesine gidin ve Ortam Değişkenleri'ni tıklayın. PATH adlı sistem değişkenini bulun ve ekleyin ;C:\Path\to\java\bin. Şimdi java'yı cmd.exe'den çalıştırabilmelisiniz.


java.exe her zaman PATH'imdeydi. Java'yı şimdi CL'den çalıştırabilirim çünkü yeni direktörü PATH'e koydum. Ancak, c: \ Windows \ System32 da PATH'imde, ancak bu konumdan java yürütmeyecek. neden? Exexcute olup olmadıklarını görmek için diğer dizinleri (yeni isimlerle) bu dizine kopyalamayı denedim. Peki c: \ Windows \ System32 \ java.exe ile ilgili neler var?
Benimle

0

C: \ Windows \ system32'deki java.exe bu dizine yerleştirilir, çünkü bu dizin neredeyse sizin yolunuzda diğerlerinden daha erken olacaktır. Yani, bu java.exe dosyasının hangi JRE veya JDK'ları kurduğuna bakmaksızın, ilk önce kendi yolunda bulunduğundan emin olmanın bir yolu.

Bu java.exe ne yapar, hangi gerçek java.exe başlatılması gerektiğini görmek için kayıt defterini kontrol etmektir ve kendini değiştirmek için başlattı.

Sonuç olarak, java'nın belirli bir sürümünü çalıştırmak istiyorsanız ve yönetici ayrıcalıklarına sahip değilseniz (kullanıcı yolunuzu düzenleyebilirsiniz ancak sistem yolunu düzenleyemezsiniz), ardından istediğiniz sürümü oluşturmak için kayıt defterini düzenlemeniz gerekir. java.exe tarafından C: \ Windows \ system32 içinde seçilecek olanı.

Oracle'ın Java 1.6.x için doc'suna göre: "Java SE Çalışma Zamanı Ortamı'nın Microsoft Windows sürümü için yükleme programı, yol ve sürüm bilgilerini kaydetmek için kayıt defterini kullanır. Sistem dizinindeki uygulama başlatıcısı, konumunu almak için kayıt defteri ayarlarını kullanır. Java SE Runtime Environment, bir uygulamayı başlatırken kullanacakları "

... ve ...

"Java.exe'nin yürütülebilir dosyasının iki kopyası yüklü. Bir kopya JRE'nin bin dizininde. İkinci kopya, sisteme bağlı olarak C: \ windows \ system veya C: \ winnt \ system32 dizinine yerleştirildi. sistem dizinindeki konumunun java.exe dosyasının bu ikinci kopyası, tam yolunu vermeden herhangi bir dizin konumundan başlatılabilir.

Java.exe dosyasının yürütülebilir dosyasının bu ikinci kopyası, JRE'nin yerini bulmak için hangi kayıt defteri anahtarının kullanılacağını belirlemek için CurrentVersion kayıt defteri ayarına dayanır. Örneğin, CurrentVersion kayıt defteri 1.6 olarak ayarlanmışsa, sistem dizininde yürütülebilir java.exe, JRE'nin nerede kurulu olduğunu belirlemek için HKEY_LOCAL_MACHINE \ Software \ JavaSoft \ Java SE Çalışma Zamanı Ortamı \ 1.6 anahtarına bakacaktır. "

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.