Tutulma - Java yok (JRE) / (JDK)… sanal makine yok


278

Eclipse v3.5 (Galileo) bilgisayarımda yeniden çalıştırmak için çalışıyorum - daha önce sorunsuz bir şekilde çalıştırdım, ama şimdi bu hatayı almaya devam:

Eclipse'i çalıştırmak için bir Java Çalışma Zamanı Ortamı (JRE) veya Java Geliştirme kiti (JDK) mevcut olmalıdır. Aşağıdaki konumlar arandıktan sonra Java sanal makinesi bulunamadı: Geçerli PATH'nizde C: \ eclipse \ jre \ javaw.exe javaw.exe

JDK'nın ve SDK'nın yeni bir kurulumunu yaptım.

Windows 7 (x64) sürümüm var.

Bunun nesi var? Nasıl düzeltebilirim?

Ben ipconfig / tracert / veya ping çalıştıramıyorum.


3
Java Runtime EnvironmentJRE SDK değil ...
user85421

1
Bir JRE yükleyin - bu, yolunuza bir javaw.exe verir. JDK's yapmaz.
Thorbjørn Ravn Andersen

12
@Carlos, her JDK özel bir JRE getirir.
Thorbjørn Ravn Andersen

3
@ Thorbjørn: ve anlamı nedir? Bunu biliyorum ve JDK da halka açık bir JRE getiriyor . "Java Runtime Environment SDK değil" yazdım, ancak neden yazdığımı anlamak için orijinal
gönderiyi

11
Eclipse'i yükledikten sonra JDK'yı başka bir yola yüklediyseniz, bu sorunla karşılaşabilirsiniz. Bunun nedeni, eclipse sabitinin eclipse.ini dosyasında ilk kez kurulduğunda JDK yolunu kodlamasıdır. Sadece eclipse.ini dosyasında doğru JDK yolunu değiştirin. Bu hatayı çözmeli.
Rajaraman

Yanıtlar:


221

Eclipse varsayılan olarak varsayılan " java.exe" (sizin tarafınızdan referans verilen PATH)

Hatırlamanız gereken üç şey:

  • Bir JRE veya JDK'yı "kurmak", onu başka bir bilgisayardan açmak veya kopyalamak kadar basit olabilir: özel kurulum adımları yoktur ve istediğiniz kadar farklı JVM sürümüne (1.4, 5.0, 6.0 ...) sahip olabilirsiniz. , "kurulu" (kopyalandı) diskinizin hemen hemen her yerinde.
  • Eclipse'i her zaman mümkün olan en son JRE ile çalıştırmanızı öneririm (en son hotspot gelişmelerinden yararlanmak için ). Yapabilirsin:
  • Eğer başvuracağı JVM içinde sizin Eclipse oturumu olan değil her zaman Eclipse çünkü başlatılması için kullanılan bir:
    • Eclipse'i başlatmak için sadece bir JRE'ye ihtiyacınız var, ancak Eclipse başlatıldığında, projeleriniz için bir JDK kaydetmelisiniz (özellikle Java kaynakları ve hata ayıklama amaçları için, derleme için de teoride, ancak Eclipse'nin kendi Java derleyicisine sahiptir) Not: Sadece kayıt olabilirsiniz Eclipse içinde bir JRE, çünkü programınızı çalıştırmanız yeterlidir , ancak yine bir JDK daha fazla işleme izin verecektir.
    • Eclipse'deki varsayılan kayıtlı Java, oturumu başlatmak için kullanılan Java olsa da, programlarınızı çalıştıracak bir JRE ile çalıştırmak / hata ayıklamak için daha eski bir SDK (Sun olmayan bir tane dahil) kaydetmek isteyebilirsiniz. aslında üretimde kullanılır.

Yüklü JRE'ler


Haziran 2012, jmbertucci yorum:

Windows 7 64 bit çalıştırıyorum ve 32 bit JRE yüklü. 64-bit JRE arayan Eclipse 64-bit'i indirdim. 64-bit JRE'ye sahip olmadığım için hatayı attı, bu da mantıklı.

Java manuel yükleme sayfasına (istediğiniz kadar doğrudan erişilemedi) gittim ve 64 bit sürümünü yükledim. Bkz. " Tüm İşletim Sistemleri için Java Yüklemeleri ". Tüm ihtiyacım olan buydu.


Nisan 2016: Steve Mayne yorumlarda şunları ekliyor :

eclipse.iniDoğru Java yoluna başvurmak için dosyayı düzenlemek zorunda kaldım - Eclipse PATHbir değer olduğunda ortamı hiç kullanmaz eclipse.ini.


42
Bu soru / cevap biraz eski ama bu sorunla karşılaşıyordum, bu yüzden notlarımı göndereceğim. Win7 64bit çalıştırıyorum ve 32bit JRE yüklü. 64bit JRE'yi arayan Eclipse 64bit'i indirdim. 64bit JRE'ye sahip olmadığım için hatayı attı, bu da mantıklı. Java manuel yükleme sayfasına (istediğiniz kadar doğrudan erişilemedi) gittim ve 64bit sürümünü yükledim. java.com/en/download/manual.jsp Tüm ihtiyacım buydu.
jmbertucci

2
@Nuktu: Cevaba jmbertucci adlı kullanıcının yorumunu ekledim
VonC

@jmbertucci: notlarınız için teşekkür ederim. Daha fazla görünürlük için bunları yanıta ekledim.
VonC

2
@VonC Doğru java yoluna başvurmak için eclipse.ini dosyasını düzenlemek zorunda kaldım - eclipse.ini'de bir değer olduğunda Eclipse ortamı PATH'ı hiç kullanmaz
Steve Mayne

1
@SteveMayne İlginç, teşekkür ederim. Daha fazla görünürlük için yorumunuzu cevaba ekledim.
VonC

141

Sadece bu dosyayı kopyalayın:

c:/Program Files/Java/jre(5,6,7..any version)/bin/javaw.exe

Eclipse Klasörüne

* not yalnızca Windows için test edilmiştir

Eclipse Klasöründe Javaw.exe dosyasını değiştirme


Bu cevap olarak basit bir çözüm arıyordum ama benim için işe yaramadı, birinin benzer bir durumda olması durumunda, eclipse.ini dosyasındaki vm dizinini değiştirmek yardımcı olabilir .
Noha Kareem

3
Benim için çalışmadı, bana hata verdi: 'Software \ Javasoft \ Java Runtime Environment' kayıt defteri anahtarını açma. Eclipse dizinine tüm jre7 (benim durumumda) klasörü kopyalamak ve jre yeniden adlandırmak zorunda kaldı. Sonra işe yaradı.
CuriousMarc

Birisi başarısız olursa, jre klasörünü eclipse klasörüne kopyalamaya çalışın.
Arthur Zhixin Liu

@NohaKareem tavsiyen benim için en yakındı. Ne yazık ki, 'jre' klasörüm sadece 'lib' içeriyordu, bu yüzden Java 'jdk' klasörü üzerinden kopyalama (350MB'de daha büyük olmasına rağmen dahili bir 'bin' klasörü vardı) ve 'jre' adını değiştirmek işe yaradı. Teşekkürler.
Mindsect Ekibi

Hem 32 hem de 64 bit java yüklü ancak 32bit java yolunda, 64bit tutulması açmaya çalışmak başarısız olacaktır, 64bit javaw dosyasını exclipse'nin yanına koymak çalışmasını sağlar.
DiamondDrake

83

Ayarlanmasıyla ilgili diğer tüm yanıtlar sadeceJAVA_HOME tamamen doğru değildir. Eclipse yani yok değil danışınJAVA_HOME . Hata mesajına daha yakından bakın:

... mevcut PATH'ınızda

Kelimenin tam anlamıyla PATH, değil dedi JAVA_HOME.

Bilgisayarım'a sağ tıklayın ve Özellikler'i seçin (veya Winkey+ tuşuna basın Pause), Gelişmiş sekmesine gidin , Ortam Değişkenleri düğmesini tıklayın, alttaki Sistem Değişkenleri listesinde Path(hayır, değil Classpath ) seçin, Düzenle'yi tıklayın ve ;c:\path\to\jdk\bindeğerin sonuna ekleyin .

Alternatif olarak ve yoksa, JAVA_HOMEortam değişkeni ekleyebilir ve içinde bunu kullanabilirsiniz PATH. Aynı diyaloğa tıklayın Yeni ve ekleme JAVA_HOMEdeğeriyle c:\path\to\jdk. Ardından ayarın ;%JAVA_HOME%\bindeğerinin sonuna ekleyebilirsiniz Path.


2
İşe yaramadı :) ortam adının verileri: Yol --- değer: C: \ Program Files (x86) \ Java; C: \ Program Dosyaları (x86) \ Java \ jdk1.6.0_14 \ bin
Wallter

1
Boşluklu yolların tırnak işaretleri içine alınması gerekir.
BalusC

yolum daha önce mükemmel bir şekilde yapılandırıldı, Borland derleyici yol alanını düzenledi ve java yolunu kendi yoluyla değiştirdi, şimdi Sabit, thnks !!!
Akhil Jain

1
@BalusC Aslında, Windows'ta PATH ortam değişkenlerini yapılandırırken yolları tırnak içine almanıza gerek yoktur . Onları noktalı virgül ( ;) ile sınırlamak yeterlidir.
informatik01

çözen cevap budur. birkaç saat sonra, aynı problemi olanlar için, ihtiyacınız olan şey: 1) her şeyin 64 bit olduğundan emin olun. Otomatik olarak "program dosyalarını", "program dosyalarını (x86)" DEĞİL yüklemelidir. 2) Diğer cevapların sahip olduğu bin klasörüne -VM yazın. 3) Yolu bu adamın söylediği gibi ayarlayın. Java'yı komut satırından çalıştıramazsanız hiçbir şey olmaz. 4) sevin
triplebig

36

Denetim Masası'ndan Windows Sistem Özellikleri'ni açın ve ortam değişkenleri bölümünü bulun:

  • JDK'nın yüklü olduğu dizine işaret eden bir JAVA_HOME girişi ekleyin (örn. C: \ Program Files \ Java \ jre6)
  • Yol girdisini bulun ve aşağıdakileri sonuna ekleyin;% JAVA_HOME% \ bin
  • Tamam değişiklikler
  • Tutulmayı yeni ortamın farkında olması için yeniden başlatın

Çoğu Java aracı, Java kurulumunuzu JAVA_HOME ortam değişkenini kullanarak veya Path ortam değişkeninde java.exe / javaw.exe'yi arayarak bulabilir.


3
Adı eklediğimde: JAVA_HOME değeri: "C: \ Program Files (x86) \ Java \ jdk1.6.0_14;% JAVA_HOME% \ bin" Hala aynı hatayı alıyorum
Wallter

24

Eclipse'in 64 bit sürümünü indirirseniz; JRE'nin 64 bit sürümünü arayacaktır. Eclipse'in 32 bit sürümünü indirirseniz; JRE'nin 32 bit sürümünü arayacak

Yaptığım şey JRE'nin hem 32 hem de 64 bit sürümünü kurmaktı. Bunu SUN Oracle sitesinden alabilirsiniz. JAVA sitesi otomatik olarak Java'nın 32 bit sürümünü yüklüyor. Sanırım bunun nedeni web tarayıcısı.


2
Ladookie'nin söylediği gibi, sorun büyük olasılıkla tarayıcı Java'nın web sitesinde kötü kod çalıştırıyor ve
JAVA'nın

1
speedbaron tamamen burada. Çevresel değişken PATH'nizi değiştiriyorsanız, doğru sürümün yolunu koyduğunuzdan emin olun. Windows 7 64 bit sistemim 32 bit JRE yüklü (neden bilmiyorum), bu yüzden 64 bit sürümünü yükledim ve PATH'ye yeni dizini ekledim. Şimdi iyi çalışıyor gibi görünüyor.
musicliftsme

1
Bu benim sorunumdu. Windows 64 bit C:\Program Files\Javave 32 bit için yükler unutmayın C:\Program Files (x86)\Java.
styfle

10

Tek yapmam gereken 'yolu' değiştirmek:

"C: \ Windows \ system32; C: \ Windows; C: \ Windows \ System32 \ Wbem; C: \ Program Dosyaları (x86) \ Java; C: \ Program Dosyaları (x86) \ Java \ jdk1.6.0_14 \ bin "

yaptı :)


1
BTW, jdk1.6.0_16 veya üstünü kullanmalısınız. Jdk 1.6.0_14 kullanarak Eclipse'de kesme noktalarını doğru şekilde kullanamazsınız: bugs.eclipse.org/bugs/show_bug.cgi?id=279137
Csaba_H

9

Windows 7 64-bit var ve aynı tutulma ile aynı sorunu vardı. Çalışması için, java indirmek için internet explorer (64 bit sürümü) kullanmak zorunda kaldım. Java'nın 64 bit sürümünü yüklemesinin tek yolu buydu. Java'yı yüklemek için firefox kullandığımda, otomatik olarak 32 bit sürümü (çok aptalca!) Yükledi. Ve Eclipse 64 bit sürümü java 32 bit sürümünü algılamaz.


Artık sorunum yok - ama bu iyi bir çözüm gibi görünüyor ve mantıklı - bunu diğer 64bit tarayıcılarla test etmek ilginç olurdu ...
Wallter

7

Özetle çözüm:

Bilgisayarım'a sağ tıklayın, özellikleri tıklayın, ardından gelişmiş sistem ayarları, bir Sistem özellikleri penceresi açılır, gelişmiş sekmesi altında, ortam değişkenlerini seçin, Ortam değişkenleri penceresi açılır, Sistem değişkenleri bölümünün altında, değişken arayın PATHve değeri düzenleyin , (sürüm; jre6, jre7 vb.) kullandığınız jre ile değiştirerek, örneğin benimki için:C:\Program Files\Java\jre7\bin


7

Hemen hemen her güncellemede değiştiği için windows yol değişkenine güvenmeyin. Örneğin, bir krom (64 bit makinede 32 bit) java güncellemesi, sistem genelinde 64 bit JVM'yi 32 bit JVM ile değiştirir. Ayrıca, bu girişin eclipse.ini dosyasında sonuncu olması gerektiğini unutmayın, aksi takdirde çalışmaz, Ve - aksi belirtilmedikçe - JAVA_HOME değişkeni eclipse.exe tarafından DEĞİLDİR.

JAVA_HOME ve Yolunuz geçerli olarak yapılandırılmış olsa bile, onların bu sorunu olabilir, bu yüzden yapmanın en basit yolu eclipse.ini dosyanızı tutulma yükleme klasörünüzde açmaktır

-vm

C: \ Program Dosyaları \ Java \ jdk1.7.0_71 \ bin \ javaw.exe

C: \ Program Files \ Java \ jdk1.7.0_71 \ bin \ javaw.exe dosyasını jdk veya jre `yolunuzla değiştirin


Bu cevabın doğru olması için oy veriyorum. Hemen hemen her güncellemede değiştiği için windows yol değişkenine güvenmeyin. Örneğin, bir krom (64 bit makinede 32 bit) java güncellemesi, sistem genelinde 64 bit JVM'yi 32 bit JVM ile değiştirir. Bu girişin eclipse.ini dosyasındaki son giriş olması gerektiğine dikkat edin, aksi takdirde çalışmaz. Ve - aksi belirtilmedikçe - JAVA_HOME değişkeni eclipse.exe tarafından DEĞİLDİR. Lütfen cevabınızı buna göre düzenleyin.
Heri

Gerçek sorunu doğrudan çözdüğü için bu en iyi cevaptır. Eclipse belirli bir parametre başına bir yol arıyor ve bu değer yanlış ... bu nedenle değerin düzeltilmesi sorunu çözüyor.
BuvinJ

6

Senin içinde eclipse.inidosyanın, aynı konuma noktaya VM yolunu güncellemeniz gerekir javaw.exemakinenizde yüklü.


6

Merak etmeyin ben de bu hata ve ölümcül tarafından harap oldu ve i var ben bile bir android programlama bırakmak için vererek bile çok sinirli oldu, ama anladım, her şeyden önce sadece bu kodu kopyalayın ve sistem değişkenine yapıştırın Yol altında ...

C: \ Program Dosyaları; C: \ Winnt; C: \ Winnt \ System32; C: \ Program Dosyaları \ Java \ jre6 \ bin \ javaw.exe

Şimdi "jre" klasörünü bu yolun altında "jre" gibi benim yolunuzdan kopyalayın

            C:\Program Files\Java

eclipse klasörünüze yapıştırıp eclipse.exe dosyanızın yerleştirildiği anlamına gelir. tutulması benim bu konumda kurulmuş gibi

    F:\Softwares\LANGUAGES SOFTEARE\Android Setup\eclipse

Tutulma klasörünün içine "jre" FOLDER yapıştırın. Eğer "jre6" varsa o zaman "jre" olarak yeniden adlandırın .... ve tutulması çalıştırmak çözüm var ...

   //<<<<<<<<<<<<<<----------------------------->>>>>>>>>>>>>>>>>>>                 

DİĞER ÇÖZÜM: 2

Sorun yukarıdaki adımlarla çözülemezse, aşağıdaki adımları izleyin

  1. "Jre" klasörünü C: \ Program Files \ Java \ jre6 * vb. Gibi Java yolunuzdan kopyalayın ve tutulma dizininize yapıştırın (Tutulmanız nerede kullanılabilir)
  2. Eclipse.ini dosyasına gidin, açın.
  3. Javaw.exe dosyanızın dizinini aşağıdaki gibi değiştirin

-vmF: \ Yazılımlar \ DİL YAZILIMI \ Android Kurulumu \ eclipse Indigo sürüm 32 Bit \ jre \ bin / javaw.exe

Şimdi bu kez eclipse başlatacağınız zaman javaw.exe'yi arayacaktır, bu yüzden eclipse.ini içindeki yolu arayacaktır, şimdi aynı klasörde olduğu için javaw.exe'yi başlatacak ve çalışmaya başlayacaktır. .

Hala herhangi bir sorunuz varsa tekrar sorabilirsiniz, sadece profilime gidin ve e-posta kimliğimi bulun. çünkü yığın taşması forumunu seviyorum ve bu beni bir programcı yaptı. *


5

Yeni güncellenen JDK'yı güncellemek için eclipse.ini dosyamı düzenledi. Daha önce jdk1.7.0_09 vardı ve şimdi jdk1.7.0_80 olarak güncellendi ve tutulma bu hatayı attı.

Eclipse'i çalıştırmak için bir Java Çalışma Zamanı Ortamı (JRE) veya Java Geliştirme Kiti (JDK) mevcut olmalıdır. Aşağıdaki konumlar arandıktan sonra Java sanal makinesi bulunamadı: C: ​​/ Program Dosyaları / Java / jdk1.7.0_09 / bin / javaw

Eclipse.ini dosyasını güncelledikten sonra ,

-vm
C:/Program Files/Java/jdk1.7.0_09/bin/javaw

için

-vm
C:/Program Files/Java/jdk1.7.0_80/bin/javaw

Eclipse iyi çalışıyor.


1
Bu benim için işe yarayan çözüm - teşekkürler Lucky. Eclipse, ini dosyasında başvurulan JRE dosyasını yükler, bu nedenle kabul edilen cevap env PATH'e baktığını düşündürmek için yanlıştır.
Steve Mayne


3

ortam değişkenlerindeki PATH değişkenine C: \ Program Files \ Java \ jdk1.8.0_92 \ bin eklendikten sonra tutulma aynı hatayı verdi

eclipse klasöründe bulunan eclipse yapılandırma ayarları dosyasını kontrol edin, C: \ program Files'da bulunan jdk yolunu görmelisiniz

resim açıklamasını buraya girin

Umarım yardımcı olur.


2

Böyle bir problemim olduğunda, benim durumumda x86 Eclipse ile yüklü x64 JDK + JRE vardı. Yani x86 JDK + JRE yükleme sorunumu çözdü :) Ayrıca benim yarattığım jreTutulma klasöründe klasör ve kopyalanan binbenim yerel yoldan klasörü C:\Program Files (x86)\Java\jre7için ..\eclipse\jre\.


2
  • 64 bit İşletim Sistemi -> Gerekenler: 64 bit Java ve 64 bit Eclipse
  • 32 bit İşletim Sistemi -> Gerekenler: 32 bit Java ve 32 bit Eclipse

java sürümünüzü 64 bit bilgisayarınızda varsayılan güncelleme ile güncellerseniz (ve 32 bit tarayıcınız varsa ), java 32 bit sürümünü yükleyecektir. 64 bit java sürümünü bulmalı ve yüklemelisiniz.


1

Geçen hafta bu sorunla ilgili bir iş arkadaşım vardı. Eclipse'in x64 sürümünü ve x64 JDK'yı yükleyerek düzeltti.

Düzenleme: Gerekli eklentileri yükledikten sonra eski çalışma alanını yeniden kullandı, bu yüzden çok fazla sorun olmamalı


1

Bunu yapmanın daha kolay bir yolu var. Sadece cmd x64'ü çalıştırın. Başlat menüsünde ant arama çubuğuna cmd x64 yazın ve alternatif olarak, program dosyalarının (x86) yolunu ayarlamanız gerekir ... Örneğin C: \ Program Files (x86) \ Java \ jre6


1

Sadece JRE PATH FOR Ex: C: \ Program Files \ Java \ jre5 \ bin ortam değişkenini Put ";" her yolun arasında. Sonra eclipse.exe tıklayın Çalışacak .....


1

Bu hatayı almanızın nedeni, tutulmanın başlatmak için bir JRE'ye ihtiyaç duymasıdır, bu da bulamaz. Aradığı ilk yer geçerli dizin, daha sonra eclipse.ini dosyası ve son olarak sistem yoludur. Bu nedenle, bu üç yerden herhangi birinde doğru jvm'yi (bit sürümleri farklı) bulamazsa,

Önerilen yol, eclipse.ini dosyasını düzenlemek ve bu satırı dosyaya ekleyerek eclipse'ye tam olarak nerede vm / jre araması gerektiğini söylemektir:

-vm
[java.exe dosyanızın yolu] (genellikle "C: \ Program Files \ Java \ jre7 \ bin" altındadır)

PS eclipse.ini dosyasını düzenlemek için, onu taşımanız, düzenlemeniz ve ardından geri yapıştırmanız gerekebilir

Kaynak: - wiki


1

Her şeyden önce çözümü için YouYou'ya teşekkürler! YouYou tarafından yanıtlamayı denedim ( https://stackoverflow.com/a/14464653/801919 ). Başlangıçta benim için işe yaramadı. Çalışması için atmam gereken adımlar şunlardır:

  1. Başlangıçta, yeni makinemde Java yüklü değildi. Bu yüzden, yüklemem gerekiyordu ( http://java.com/en/download/manual.jsp adresinden indirildi ).
  2. 64 bit işletim sistemi kullanıyorum. Ancak, indirirken, hangi Java sürümünü indireceğimi seçmeme yardımcı olabilecek mesajı aldım: Choose the 32-bit download to use with a 32-bit browser.Bu nedenle, 32 bit sürümünü indirdim.
  3. Ardından, çözümü almayı umarak https://stackoverflow.com/a/14464653/801919 adresinde belirtilen prosedürü izledim .
  4. Başka bir hatayla karşılaştım: Java was started but returned exit code=13
  5. Sonra, Java'nın 64 bit sürümünü yükledim.
  6. javaw.exeBu sürümden kopyalandı .

... Ve Eclipse çalışmaya başladı !!! Yaay!


1

Peki bu cevap, diğerleri hala şanssız deneyenlere, Bu Android stüdyosu olabilir veya Eclipsegenellikle her şey başarısız olduğunda bunu yaparım.

  1. Android sdk klasörünüzü bulun ve android.bat dosyasını bir metin düzenleyicisiyle açın
  2. dosyanın başlangıcında bunlar gibi bazı komutlar bulacaksınız,

set java_exe=

call lib\find_java.bat

if not defined java_exe goto :EOF

  1. Bunları olarak değiştirin

    set java_exe=< java.exe dosyanızın yolu (jdk klasörünüz / bin dizininizde bulunabilir) >

  2. hatları bul

rem Set SWT.Jar path based on current architecture (x86 or x86_64) for /f "delims=" %%a in ('"%java_exe%" -jar lib\archquery.jar') do set swt_path=lib\%%a

  1. Seti ile değiştirin swt_path=< o araçlar \ lib \ x86 ve sdk de x64 için \ araçları \ lib \ x86_64 \ sdk olan x86 Lütfen ilgili swt.jar dosyasının yolunu >
  2. Dosyayı kaydedip kapatın ve artık hazırsınız ..

1

JAVA_HOME'unuzu doğru klasöre ayarlamayı deneyin. Windows'ta ortam değişkenlerini ayarlamak için Google.



Bunu söylemekten nefret ediyorum ... ama yeniden başladın mı?
Topher Fangio

Java'yı yüklemek için yeniden başlatma gerekmez.
Thorbjørn Ravn Andersen

1
JAVA_HOME da gerekli değildir. Javaw.exe bulmak için kullanılan PATH olduğunu. (JAVA_HOME ant gibi bazı diğer uygulamalar tarafından kullanılır, bu yüzden yine de ayarlamak yanlış değildir)
user85421

1

Ben de bu problemle karşılaştım. Benim durumum aşağıdaki gibidir:

resim açıklamasını buraya girin resim açıklamasını buraya girin

Metinde:

HKEY_CURRENT_USER\Environment
    Path    REG_SZ    %JAVA_HOME%\bin;C:\ProgramFiles\nodejs

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
    JAVA_HOME    REG_SZ    C:\ProgramFiles\Java\jdk
    Path    REG_EXPAND_SZ    C:\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\
WindowsPowerShell\v1.0\;C:\Program Files\Intel\DMIX;c:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;C:\Progra
m Files (x86)\Perforce;C:\ProgramFiles\010 Editor;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\ProgramFiles\
Git\cmd;C:\Program Files (x86)\Skype\Phone\

C:\Users\ssfang> echo %^JAVA_HOME% = "%^JAVA_HOME%" = %%JAVA_HOME%% %JAVA_HOME%
%JAVA_HOME% = "%^JAVA_HOME%" = %C:\ProgramFiles\Java\jdk% C:\ProgramFiles\Java\jdk

Kayıt defteri değeri türlerini Pathfarklı buldum, bu yüzden yolun geçerli olup olmadığını aşağıdaki komutla kontrol ettim:

C:\Users\ssfang> where node java
C:\ProgramFiles\nodejs\node.exe
INFO: Could not find "java".

Sonuç olarak, yerel (geçerli kullanıcı) ortamını aşağıdaki komutlarla ( Setx ) sıfırlarım :

C:\Users\ssfang> setx PATH %^JAVA_HOME%\bin;"C:\ProgramFiles\nodejs"

SUCCESS: Specified value was saved.

C:\Users\ssfang> reg query HKEY_CURRENT_USER\Environment /v Path

HKEY_CURRENT_USER\Environment
    Path    REG_EXPAND_SZ    %JAVA_HOME%\bin;C:\ProgramFiles\nodejs

C:\Users\ssfang> where node java
C:\ProgramFiles\nodejs\node.exe
INFO: Could not find "java".

C:\Users\ssfang>echo %PATH%
C:\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Fi
les\Intel\DMIX;c:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;C:\Program Files (x86)\Perforce;C:\ProgramFile
s\010 Editor;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\ProgramFiles\Git\cmd;C:\Program Files (x86)\Skype\
Phone\;%JAVA_HOME%\bin;C:\ProgramFiles\nodejs

Ancak, mevcut işlemde, bu değişiklikleri diğer çalışan işlemlere yayamaz.

Ancak, Kayıt Defteri Düzenleyicisi'nde kullanıcı ortamı değişkenlerini doğrudan değiştirirseniz,

ortam değişkenlerinde yapılan bu değişiklikler derhal değişikliğe yol açmaz. Örneğin, değişiklikleri yaptıktan sonra başka bir Komut İstemi'ni başlatırsanız, ortam değişkenleri önceki (geçerli değil) değerleri yansıtır. Değişiklikler siz oturumu kapatıp yeniden oturum açana kadar geçerli olmaz.

Oturumu kapatmak zorunda kalmadan bu değişiklikleri gerçekleştirmek için sistemdeki tüm pencerelere bir WM_SETTINGCHANGE iletisi yayınlayın; böylece ilgili tüm uygulamalar (Windows Gezgini, Program Yöneticisi, Görev Yöneticisi, Denetim Masası vb.) Bir güncelleştirme gerçekleştirebilir.

Ortam değişkenlerini sisteme yayma konusundaki ayrıntılara bakın.

Burada, bunu yapmak için bir powershell betiği veriyorum:

# powershell -ExecutionPolicy ByPass -File
# Standard, inline approach: (i.e. behaviour you'd get when using & in Linux)
# START /B CMD /C CALL "foo.bat" [args [...]]
# powershell -ExecutionPolicy ByPass -WindowStyle Hidden -File myScript.ps1 


<#
Add-Type @'

public class CSharp
{
    public static void Method(object[] first, object[] second)
    {
        System.Console.WriteLine("Hello world");
    }
}
'@
$a = 1..4;
[string[]]$b = "a","b","c","d";
[CSharp]::Method($a, $b);
#>


<#

#http://stackoverflow.com/questions/16552801/how-do-i-conditionally-add-a-class-with-add-type-typedefinition-if-it-isnt-add

#Problem Add-Type : Cannot add type. The type name 'PInvoke.User32' already exists.

if (-not ("MyClass" -as [type])) {
    add-type @"
    public class MyClass { }
"@
}


p.s. there's no Remove-Type; see this answer for more on how to best work around this limitation:
http://stackoverflow.com/questions/3369662/can-you-remove-an-add-ed-type-in-powershell-again

I think it will be wanted when debugging.
It is much simpler to close a tab in Console and open new one in PowerShell_ISE.exe or close PowerShell.exe.

Or

Start-Job -ScriptBlock {
    param([uri]$url,$OutputDir)
    # download and save pages
    Invoke-RestMethod $url | Out-File "$OutputDir\$($url.Segments[-1])" -Force
} -ArgumentList $link,$OutputDir

#>
if (-not ([System.Management.Automation.PSTypeName]'PInvoke.Program').Type)
{
    $sig=@"
using System;
using System.Runtime.InteropServices;
using System.Text;
using System.Collections.Generic;

// The global namespace is the "root" namespace: global::system will always refer to the .NET Framework namespace System.

///P/Invoke (Platform Invoke)
namespace PInvoke
{
    public static class User32
    {
        /// http://www.pinvoke.net/default.aspx/Constants/HWND.html
        // public const IntPtr HWND_BROADCAST = new IntPtr(0xffff);
        /// https://msdn.microsoft.com/en-us/library/windows/desktop/ms725497(v=vs.85).aspx
        /// http://www.pinvoke.net/default.aspx/Constants/WM.html
        public const UInt32 WM_SETTINGCHANGE = 0x001A;

        // SendMessageTimeout(HWND_BROADCAST, WM_SETTINGCHANGE, 0,    (LPARAM) "Environment", SMTO_ABORTIFHUNG,    5000, &dwReturnValue);

        /// https://msdn.microsoft.com/en-us/library/windows/desktop/ms644952(v=vs.85).aspx
        /// If the function succeeds, the return value is nonzero. 
        [System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "SendMessageTimeout", SetLastError = true)]
        public static extern uint SendMessageTimeout(IntPtr hWnd, uint Msg, int wParam, string lParam, SendMessageTimeoutFlags fuFlags, uint uTimeout, out int lpdwResult);
    }

    [Flags]
    public enum SendMessageTimeoutFlags : uint
    {
        SMTO_NORMAL = 0x0,
        SMTO_BLOCK = 0x1,
        SMTO_ABORTIFHUNG = 0x2,
        SMTO_NOTIMEOUTIFNOTHUNG = 0x8,
        SMTO_ERRORONEXIT = 0x20
    }

    public class Program
    {
        public static void Main(string[] args)
        {
            //int innerPinvokeResult;
            //uint pinvokeResult = User32.SendMessageTimeout(User32.HWND_BROADCAST, User32.WM_SETTINGCHANGE, 0, "Environment", SendMessageTimeoutFlags.SMTO_NORMAL, 1000, out innerPinvokeResult);
            Console.WriteLine("Over!!!!!!!!!!!!!!!!!!!!!!!!!");
        }
    }
}
"@

    Add-Type -TypeDefinition $sig
}


## [PInvoke.Program]::Main([IntPtr]::Zero);

$innerPinvokeResult=[int]0
[PInvoke.User32]::SendMessageTimeout([IntPtr]0xffff, [PInvoke.User32]::WM_SETTINGCHANGE, 0, "Environment", [PInvoke.SendMessageTimeoutFlags]::SMTO_NORMAL, 1000, [ref]$innerPinvokeResult);

Setx setx [/ s [/ u [] [/ p []]]] [/ m]

/m Specifies to set the variable in the system environment. The default setting is the local environment

0

Pencere> Tercihler> Java> Yüklü JRE'leri kontrol edin. Orada bir şey olduğundan emin olun; yoksa ekleyin.

Yakın zamanda JDK'nızı güncellediniz mi?


Evet android eklentisini eklemeye çalıştım. Ama hayır (Topher Fangio'nun dediği gibi) Şimdi Eclipse'e başlayamıyorum.
Wallter

0

JDK, varsayılan yola bir JVM yüklemez.

Karınca gibi çalışmak için harici araçlara ihtiyacınız olmadığı sürece, JDK olmayan Eclipse'nin çalışması için yeterlidir. Böyle bir JVM'yi kurmanın en kolay yolu http://java.com adresine gitmek ve yüklemek istediği her şeyi yüklemesine izin vermektir.

Ardından, Eclipse ikili dosyasını tekrar çift tıklayın.


Yeniden yükledim (yeniden yüklemek isteyip istemediğimi bile sordum). (Hem Google Chrome 14 eklentisini yaptım - ya da bunun gibi bir şey yaptım && Firefox)
Wallter

Java.com'a mı gittiniz? Değil javasoft.com?
Thorbjørn Ravn Andersen

0

JAVA_HOME değişkenini ve reklam JAVA_HOME / bin'i evnrionment yol değişkenine ayarlayın.


bunun gibi: "C: \ Program Files (x86) \ Java; C: \ Program Files (x86) \ Java \ jdk1.6.0_14 \ bin"? - hala işe yaramadı :)
Wallter

Yol değişkenindeki JAVA_HOME'a başvurmak için katıştırmak gerekir:% JAVA_HOME% \ bin
Heri

Benim için (Windows 10 64 bit + Eclipse 4.10), püf noktası, JAVA_HOMEortam değişkenine ek JRE_HOMEolarak, konumun konumuna ayarlanan değişkeni eklemektir javaw.exe(muhtemelen her zaman yüklü olan JDK'nın bin klasörüdür) ).
Guy Avraham

0

Aynı sorunu yaşadım (Windows 7 x64, 64bit JDK, 32bit Eclipse) ve 2 çözüm buldum:

  • Eclipse'in 64 bit sürümünü yükleyin (indirme sayfasındaki "Geliştirme Derlemeleri" sekmesini tıklayarak bulunur.)
  • JDK'nın 32 bit sürümünü yükleyin.

Bakın ama x64 kullandığım Windows 7 x86 kullanıyordunuz --- diğerleri belirttiği gibi bu sorun, SUN'un web sayfalarının 'sürümü nasıl algıladığını' (yani x64 veya x86) nasıl programladıkları konusunda bir sorun olabilir. kullanmalı
Wallter

Düzeltme, Windows 7 x64
Tim

0

Ben de aynı problemi yaşadım. Bunu düzeltmenin kolay yolu hem JRE'yi hem de tutulmayı x86 veya x64 olarak kurmaktı. Bit tipleri eşleşmediğinde, tutulma onu bulamadı. Yani, onları eşleştirmek için kaldırmanız ve yeniden yüklemeniz büyük bir şey değilse, bunu yapardım.

Yüklemeyi bitirdim: Java Runtime Environment 1.7.0.3 (64 bit) ve Eclipse Indigo (3.7) (64 bit)

Sonra işe yarıyor.


0

Ben sadece javaw kopyalandığında, ikinci bir hata oluştu, ben de kopyalandığında, tutulması başlamadı, ben jlipk için tüm jdk klasörünü kopyaladı ve kimliği yeniden adlandırma java.dll dosyası yok. Sorun çözüldü.

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.