Eclipse - no Java (JRE) / (JDK) ... tidak ada mesin virtual


278

Saya mencoba membuat Eclipse v3.5 (Galileo) dijalankan kembali di komputer saya - saya telah menjalankannya sebelumnya tanpa masalah, tetapi sekarang saya terus mendapatkan kesalahan ini:

Java Runtime Environment (JRE) atau Java Development kit (JDK) harus tersedia untuk menjalankan Eclipse. Tidak ada mesin virtual Java yang ditemukan setelah mencari di lokasi berikut: C: \ eclipse \ jre \ javaw.exe javaw.exe di PATH Anda saat ini

Saya baru saja melakukan instalasi baru baik JDK dan SDK.

Saya memiliki Windows 7 (x64).

Ada apa dengan ini? Bagaimana saya memperbaikinya?

Saya tidak bisa menjalankan ipconfig / tracert / atau ping.


3
Java Runtime Environmentis JRE not SDK ...
user85421

1
Instal JRE - ini memberikan javaw.exe di jalur Anda. JDK tidak.
Thorbjørn Ravn Andersen

12
@Carlos, masing-masing JDK membawa JRE pribadi.
Thorbjørn Ravn Andersen

3
@ Thorbjørn: dan apa gunanya? Saya tahu itu dan juga bahwa JDK juga membawa JRE publik . Saya menulis bahwa "Java Runtime Environment bukan SDK" tetapi Anda harus membaca posting asli (sebelum diedit pada 11 Januari) untuk memahami mengapa saya menulisnya: "Lingkungan Java Runtime ( SDK ) atau ..."
user85421

11
Jika Anda baru saja menginstal JDK di jalur lain setelah Anda menginstal Eclipse maka Anda mungkin menghadapi masalah ini. Ini karena eclipse hard code jalur JDK di eclipse.ini ketika setup untuk pertama kalinya. Cukup ubah jalur JDK yang benar di eclipse.ini. Itu harus mengatasi kesalahan ini.
Rajaraman

Jawaban:


221

Eclipse akan secara default mencoba meluncurkan dengan " java.exe" default (yang pertama dirujuk oleh Anda PATH)

Tiga hal yang perlu diingat:

  • "Memasang" JRE atau JDK dapat sesederhana membuka ritsleting atau menyalinnya dari komputer lain: tidak ada langkah pemasangan khusus, dan Anda dapat memiliki banyak versi JVM yang berbeda (1,4, 5.0, 6.0 ...) seperti yang Anda inginkan , "diinstal" (disalin) hampir di mana saja pada disk Anda.
  • Saya akan merekomendasikan untuk selalu menjalankan Eclipse dengan JRE terbaru (untuk mendapatkan manfaat dari evolusi hotspot terbaru ). Kamu bisa:
  • JVM yang akan Anda referensi dalam sesi Eclipse Anda tidak selalu yang digunakan untuk meluncurkan Eclipse karena:
    • Anda hanya memerlukan JRE untuk meluncurkan Eclipse, tetapi begitu Eclipse diluncurkan, Anda harus mendaftarkan JDK untuk proyek Anda (terutama untuk sumber Java dan tujuan debugging, juga dalam teori untuk kompilasi tetapi Eclipse memiliki kompiler Java sendiri) Catatan: Anda dapat mendaftar hanya JRE dalam Eclipse karena sudah cukup menjalankan program Anda, tetapi sekali lagi JDK akan memungkinkan untuk lebih banyak operasi.
    • Meskipun Java terdaftar standar di Eclipse adalah yang digunakan untuk meluncurkan sesi, Anda dapat mendaftarkan SDK yang lebih lama (termasuk yang non-Sun) untuk menjalankan / men-debug program Anda dengan JRE yang serupa dengan yang akan sebenarnya bisa digunakan dalam produksi.

JRE yang dipasang


Juni 2012, komentar jmbertucci :

Saya menjalankan Windows 7 64-bit dan saya telah menginstal JRE 32-bit. Saya mengunduh Eclipse 64-bit yang mencari JRE 64-bit. Karena saya tidak memiliki JRE 64-bit, itu melemparkan kesalahan, yang masuk akal.

Saya pergi ke halaman instalasi manual Java (yang tidak dapat diakses secara langsung seperti yang Anda inginkan) dan menginstal versi 64-bit. Lihat " Unduhan Java untuk Semua Sistem Operasi ". Itu yang saya butuhkan.


April 2016: Steve Mayne menambahkan dalam komentar :

Saya harus mengedit eclipse.inifile untuk referensi jalur Java yang benar - Eclipse tidak menggunakan lingkungan PATHsama sekali ketika ada nilai di eclipse.ini.


42
Pertanyaan / jawaban ini agak lama tetapi saya mengalami masalah ini jadi saya akan memposting catatan saya. Saya menjalankan Win7 64bit dan saya telah menginstal JRE 32bit. Saya mengunduh Eclipse 64bit yang mencari JRE 64bit. Karena saya tidak memiliki JRE 64bit, ia melemparkan kesalahan, yang masuk akal. Saya pergi ke halaman instalasi manual Java (yang tidak dapat diakses secara langsung seperti yang Anda inginkan) dan menginstal versi 64bit. java.com/en/download/manual.jsp Itu saja yang saya butuhkan.
jmbertucci

2
@Nuktu: Saya telah menambahkan komentar jmbertucci ke jawabannya
VonC

@ jmbertucci: terima kasih atas catatan Anda. Saya telah menambahkan mereka ke jawaban untuk visibilitas lebih.
VonC

2
@VonC Saya harus mengedit file eclipse.ini untuk referensi jalur java yang benar - Eclipse tidak menggunakan PATH lingkungan sama sekali ketika ada nilai di eclipse.ini
Steve Mayne

1
@SteveMayne Menarik, terima kasih. Saya telah memasukkan komentar Anda dalam jawaban untuk lebih banyak visibilitas.
VonC

141

Cukup salin file ini:

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

ke Folder Eclipse

* note hanya diuji untuk Windows

Mengganti javaw.exe di Folder Eclipse


Saya sedang mencari solusi sederhana sebagai jawaban ini tetapi tidak berhasil bagi saya, jika seseorang memiliki situasi yang sama, mengubah direktori vm di file eclipse.ini mungkin membantu .
Noha Kareem

3
Tidak berfungsi untuk saya, beri saya Kesalahan: membuka kunci registri 'Software \ Javasoft \ Java Runtime Environment'. Saya harus menyalin seluruh folder jre7 (dalam kasus saya) ke direktori Eclipse, dan menamainya jre. Lalu berhasil.
CuriousMarc

Untuk seseorang yang gagal, cobalah untuk menyalin folder jre ke folder gerhana.
Arthur Zhixin Liu

@NohaKareem saran Anda adalah yang terdekat bagi saya. Sayangnya, folder 'jre' saya hanya berisi 'lib', jadi menyalin di folder Java 'jdk' (walaupun lebih besar pada 350MB, tetapi memiliki folder 'bin' internal) dan menamai ulangnya 'jre' berhasil. Terima kasih.
Tim Mindsect

Memiliki kedua 32 dan 64 bit java diinstal tetapi 32bit java di jalur, mencoba untuk membuka gerhana 64bit akan gagal, menempatkan file javaw 64bit di sebelah exclipse membuatnya bekerja.
DiamondDrake

83

Semua jawaban yang lain tentang pengaturan hanya dengan JAVA_HOMEtidak sepenuhnya benar. Eclipse artinya tidak berkonsultasi denganJAVA_HOME . Lihat lebih dekat pada pesan kesalahan:

... di PATH Anda saat ini

Secara harfiah dikatakan PATH, tidak JAVA_HOME.

Klik kanan My Computer dan pilih Properties (atau tekan Winkey+ Pause), buka tab Advanced , klik tombol Variabel Lingkungan , di daftar System Variables di bagian bawah pilih Path(tidak, tidak Classpath ), klik Edit dan tambahkan ;c:\path\to\jdk\binke akhir nilai.

Atau dan jika tidak ada, Anda juga dapat menambahkan JAVA_HOMEvariabel lingkungan dan menggunakannya di PATH. Dalam dialog yang sama klik Baru dan tambahkan JAVA_HOMEdengan nilai c:\path\to\jdk. Kemudian Anda dapat menambahkan ;%JAVA_HOME%\binhingga akhir dari nilai Pathpengaturan.


2
Tidak berfungsi :) data nama lingkungan: Path --- nilai: C: \ Program Files (x86) \ Java; C: \ Program Files (x86) \ Java \ jdk1.6.0_14 \ bin
Wallter

1
Jalur dengan spasi perlu dilampirkan dalam tanda kutip.
BalusC

path saya telah dikonfigurasi dengan sempurna sebelumnya, kompiler Borland mengedit field path dan mengganti path java dengan path-nya sendiri, sekarang Fixed, thnks !!!
Akhil Jain

1
@ BalusC Sebenarnya, tidak perlu menyertakan path dalam tanda kutip ketika mengkonfigurasi variabel lingkungan PATH pada Windows. Hanya membatasi mereka dengan titik koma ( ;) sudah cukup.
informatik01

inilah jawaban yang memecahkannya. setelah beberapa jam menggali, untuk mereka yang memiliki masalah yang sama, yang Anda butuhkan adalah: 1) pastikan semuanya 64-bit. Harus secara otomatis menginstal di "file program", BUKAN "file program (x86)". 2) Tuliskan -VM ke folder bin yang memiliki jawaban lain. 3) Tetapkan jalannya seperti yang dikatakan orang ini. Tidak ada yang akan terjadi jika Anda tidak dapat menjalankan java dari baris perintah. 4) bersukacitalah
triplebig

36

Buka Properti Sistem Windows dari panel kontrol dan cari bagian variabel lingkungan:

  • Tambahkan entri JAVA_HOME yang menunjuk ke direktori tempat JDK diinstal (misalnya C: \ Program Files \ Java \ jre6)
  • Temukan entri Path dan tambahkan berikut ini di akhir;% JAVA_HOME% \ bin
  • OK perubahan
  • Mulai ulang gerhana sehingga sadar akan lingkungan baru

Sebagian besar alat Java sekarang dapat menemukan instalasi Java Anda baik dengan menggunakan variabel lingkungan JAVA_HOME atau dengan mencari java.exe / javaw.exe dalam variabel lingkungan Path.


3
Ketika saya menambahkan nama: Nilai JAVA_HOME: "C: \ Program Files (x86) \ Java \ jdk1.6.0_14;% JAVA_HOME% \ bin" Saya masih mendapatkan kesalahan yang sama
Wallter

24

Jika Anda mengunduh Eclipse versi 64 bit; itu akan mencari versi JRE 64 bit. Jika Anda mengunduh Eclipse versi 32 bit; itu akan mencari versi JRE 32 bit

Apa yang saya lakukan adalah menginstal JRE versi 32 dan 64 bit. Anda bisa mendapatkannya dari situs SUN Oracle. Situs JAVA tampaknya secara otomatis menginstal versi 32 bit Java. Saya kira itu karena browser web.


2
Seperti kata ladookie masalah yang paling mungkin adalah browser menjalankan kode buruk di situs web Java dan mendapatkan versi JAWA yang salah ...
Wallter

1
speedbaron benar-benar ada di sini. Jika Anda memodifikasi PATH variabel lingkungan Anda, pastikan Anda meletakkan path dari versi yang benar. Sistem Windows 7 64-bit saya telah menginstal JRE 32-bit (tidak tahu mengapa), jadi saya menginstal versi 64-bit dan ditambahkan ke PATH direktori baru. Tampaknya berfungsi dengan baik sekarang.
musicliftsme

1
Ini masalah saya. Perhatikan bahwa windows menginstal 64 bit ke C:\Program Files\Javadan 32 bit ke C:\Program Files (x86)\Java.
styfle

10

Ternyata yang perlu saya lakukan hanyalah mengubah 'jalur' untuk:

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

itu berhasil :)


1
BTW, Anda harus menggunakan jdk1.6.0_16 atau yang lebih baru. Menggunakan jdk 1.6.0_14 Anda tidak dapat menggunakan breakpoints dengan benar di Eclipse: bugs.eclipse.org/bugs/show_bug.cgi?id=279137
Csaba_H

9

Saya memiliki windows 7 64-bit, dan saya memiliki masalah yang sama dengan gerhana. Untuk membuatnya berfungsi, saya harus menggunakan internet explorer (versi 64-bit) untuk mengunduh java. Ini adalah satu-satunya cara untuk mendapatkan java untuk menginstal versi 64-bit. Ketika saya menggunakan firefox untuk menginstal java, secara otomatis menginstal versi 32-bit (sangat bodoh!). Dan versi Eclipse 64-bit tidak akan mendeteksi versi java 32-bit.


Saya tidak memiliki masalah lagi - tetapi ini sepertinya solusi yang bagus dan masuk akal - akan menarik untuk menguji ini dengan browser 64bit lainnya ...
Wallter

7

Singkatnya:

Klik kanan pada Komputer Saya, klik properti, lalu pengaturan sistem lanjutan, jendela Properti sistem akan muncul, di bawah tab lanjutan, pilih variabel lingkungan, jendela variabel Lingkungan akan muncul, di bawah bagian Sistem variabel, cari PATHvariabel, dan edit nilainya , mengubahnya (versi; jre6, jre7, dll) menjadi jre apa pun yang Anda gunakan, misalnya untuk tambang:C:\Program Files\Java\jre7\bin


7

Jangan bergantung pada variabel jalur windows karena akan berubah di hampir setiap pembaruan. Misalnya pembaruan java chrome (32bit pada mesin 64 bit) menggantikan JVM 64 bit seluruh sistem dengan JVM 32 bit. Perhatikan juga bahwa entri ini harus menjadi yang terakhir di eclipse.ini, jika tidak, tidak berfungsi, Dan - seperti yang dinyatakan - variabel JAVA_HOME TIDAK dievaluasi oleh eclipse.exe.

bahkan jika JAVA_HOME dan Path Anda dikonfigurasi dengan benar, mereka mungkin memiliki masalah ini, jadi cara paling mudah untuk dilakukan adalah membuka eclipse.ini Anda di folder installtion eclipse Anda

-vm

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

ganti C: \ Program Files \ Java \ jdk1.7.0_71 \ bin \ javaw.exe dengan jalur jdk atau jre `s Anda


Saya memilih jawaban ini sebagai jawaban yang benar. Jangan bergantung pada variabel jalur windows karena akan berubah di hampir setiap pembaruan. Misalnya pembaruan java chrome (32bit pada mesin 64 bit) menggantikan JVM 64 bit seluruh sistem dengan JVM 32 bit. Perhatikan juga bahwa entri ini harus menjadi yang terakhir di eclipse.ini, jika tidak, entri ini tidak akan berfungsi. Dan - sebagaimana dinyatakan lain - variabel JAVA_HOME TIDAK dievaluasi oleh eclipse.exe. Harap edit jawaban Anda sesuai dengan itu.
Heri

Ini adalah jawaban terbaik, karena langsung menyelesaikan masalah yang sebenarnya. Eclipse sedang mencari jalur per parameter tertentu, dan nilainya salah ... jadi mengoreksi nilainya memperbaiki masalah.
BuvinJ

6

Di eclipse.inifile Anda, Anda perlu memperbarui jalur ke VM untuk menunjuk ke lokasi yang sama di mana javaw.exediinstal pada mesin Anda.


6

Jangan khawatir saya juga hancur oleh kesalahan ini dan fatal dan ketika saya mendapatkannya saya sangat frustrasi bahkan saya memberi untuk meninggalkan pemrograman android, tetapi saya mendapatkannya, Pertama-tama salin kode ini dan tempelkan variabel sistem Anda Di bawah jalur ...

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

Sekarang salin folder "jre" dari jalur Anda seperti saya punya "jre" di bawah jalur ini

            C:\Program Files\Java

dan tempel di folder eclipse Anda berarti di mana file eclipse.exe Anda ditempatkan. seperti saya memasang gerhana di lokasi ini

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

Jadi di dalam folder gerhana menempelkan "jre" FOLDER. Jika Anda memiliki "jre6" lalu ganti namanya menjadi "jre" .... dan jalankan gerhana Anda, Anda akan mendapatkan solusinya ...

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

SOLUSI LAIN: 2

Jika masalah tidak dapat diselesaikan dengan langkah-langkah di atas, maka ikuti langkah-langkah ini

  1. Salin folder "jre" dari jalur Java Anda seperti C: \ Program Files \ Java \ jre6 * dll, dan tempel di direktori gerhana Anda (Di mana gerhana Anda tersedia)
  2. Buka file eclipse.ini, buka.
  3. Ubah direktori seperti file javaw.exe Anda

-vmF: \ Softwares \ BAHASA PERANGKAT LUNAK \ Android Setup \ eclipse versi Indigo 32 Bit \ jre \ bin / javaw.exe

Sekarang kali ini ketika Anda akan mulai gerhana itu akan mencari javaw.exe, sehingga akan mencari jalan di eclipse.ini, seperti yang sekarang ada di folder yang sama, ia akan mulai javaw.exe dan akan mulai bekerja .

Jika Anda masih memiliki pertanyaan, Anda dapat menanyakannya lagi, buka saja profil saya dan cari tahu id email saya. karena saya suka stack overflow forum, dan itu membuat saya seorang programmer. *


5

Mengedit file eclipse.ini saya untuk memperbarui JDK yang baru diperbarui. Sebelumnya saya punya jdk1.7.0_09 dan diperbarui sekarang ke jdk1.7.0_80 dan gerhana melemparkan kesalahan ini.

Java Runtime Environment (JRE) atau Java Development Kit (JDK) harus tersedia untuk menjalankan Eclipse. Tidak ada mesin virtual Java yang ditemukan setelah mencari di lokasi berikut: C: / Program Files / Java / jdk1.7.0_09 / bin / javaw

Setelah memperbarui eclipse.ini dari,

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

untuk

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

Eclipse bekerja dengan baik.


1
Ini adalah solusi yang berhasil untuk saya - terima kasih Lucky. Eclipse memuat JRE yang direferensikan dalam file ini, sehingga jawaban yang diterima salah dalam menyarankan itu terlihat pada PATH env.
Steve Mayne


3

jika setelah menambahkan C: \ Program Files \ Java \ jdk1.8.0_92 \ bin dalam variabel PATH dalam variabel lingkungan, gerhana memberikan kesalahan yang sama

periksa file pengaturan konfigurasi eclipse yang ditemukan di folder eclipse, Anda harus melihat path jdk yang sama dengan yang Anda miliki di C: \ program Files

masukkan deskripsi gambar di sini

Saya harap ini membantu.


2

Ketika saya mengalami masalah seperti itu, dalam kasus saya saya menginstal x64 JDK + JRE dengan x86 Eclipse. Jadi menginstal x86 JDK + JRE memecahkan masalah saya :) Saya juga membuat jrefolder di folder gerhana dan menyalin binfolder dari jalur lokal saya C:\Program Files (x86)\Java\jre7ke ..\eclipse\jre\.


2
  • 64-bit OS -> Anda perlu: Java 64-bit dan Eclipse 64-bit
  • OS 32-bit -> Anda perlu: Java 32-bit dan Eclipse 32-bit

jika Anda memperbarui versi java Anda dengan pembaruan default di komputer 64 bit Anda (dan Anda memiliki browser 32 bit ), java akan menginstal versi 32 bit. Anda harus menemukan versi java 64 bit dan menginstalnya.


1

Saya memiliki seorang rekan kerja dengan masalah persis ini minggu lalu. Dia memperbaikinya dengan menginstal versi x64 Eclipse dan x64 JDK.

Sunting: dia menggunakan kembali ruang kerjanya yang lama setelah menginstal plugin yang diperlukan, sehingga seharusnya tidak banyak masalah


1

Ada cara yang lebih mudah untuk melakukannya. Jalankan cmd x64. Ketik cmd x64 untuk mencari bar di menu start semut Anda akan menemukannya :) Atau, Anda harus mengatur path ke file program (x86) ... Misalnya C: \ Program Files (x86) \ Java \ jre6


1

Cukup Tambahkan JRE PATH FOR Ex: C: \ Program Files \ Java \ jre5 \ bin dalam variabel lingkungan, Put ";" di antara setiap jalan. Kemudian klik eclipse.exe Ini akan berhasil .....


1

Alasan Anda mendapatkan kesalahan ini adalah karena gerhana memerlukan JRE untuk diluncurkan, yang tidak dapat ditemukan. Tempat pertama yang dicari adalah direktori saat ini, kemudian file eclipse.ini dan akhirnya jalur sistem. Jadi jika itu tidak dapat menemukan jvm yang benar (versi bit berbeda) melalui salah satu dari tiga tempat ini, itu boks

Cara yang disarankan adalah mengedit file eclipse.ini dan memberi tahu eclipse di mana tepatnya mencari vm / jre, dengan memasukkan baris ini dalam file:

-vm
[path ke java.exe Anda] (yang umumnya di bawah "C: \ Program Files \ Java \ jre7 \ bin")

PS Untuk mengedit eclipse.ini, Anda mungkin perlu memindahkannya, edit lalu tempel kembali

Sumber: - wiki


1

Pertama-tama terima kasih kepada YouYou untuk solusinya! Saya mencoba menjawab dengan YouYou ( https://stackoverflow.com/a/14464653/801919 ). Awalnya, itu tidak berhasil untuk saya. Berikut adalah langkah-langkah yang perlu saya ambil untuk membuatnya bekerja:

  1. Awalnya, saya tidak menginstal Java pada mesin baru saya. Jadi, saya harus menginstalnya (diunduh dari: http://java.com/en/download/manual.jsp ).
  2. Saya menjalankan OS 64-bit. Tetapi, saat mengunduh, saya mendapat pesan yang dapat membantu saya dalam memilih versi Java mana yang akan diunduh:Choose the 32-bit download to use with a 32-bit browser. Oleh karena itu, saya mengunduh versi 32-bit.
  3. Kemudian, saya mengikuti prosedur yang disebutkan di https://stackoverflow.com/a/14464653/801919 , berharap untuk mendapatkan solusinya.
  4. Saya mendapat beberapa kesalahan lain: Java was started but returned exit code=13
  5. Kemudian, saya menginstal Java versi 64-bit.
  6. Disalin javaw.exedari versi itu.

... Dan Eclipse mulai bekerja !!! Yaay!


1

Yah jawaban ini adalah untuk mereka yang mencoba semua yang lain masih belum berhasil, Mungkin ini studio Android atau Eclipsesaya biasanya melakukan ini ketika semuanya gagal.

  1. Temukan folder SDK Android Anda dan buka file android.bat dengan editor teks
  2. Anda akan menemukan beberapa perintah seperti ini di awal file,

set java_exe=

call lib\find_java.bat

if not defined java_exe goto :EOF

  1. Ubah ke

    set java_exe=< path ke file java.exe Anda (dapat ditemukan di dalam folder folder / bin jdk Anda) >

  2. temukan garisnya

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. Menggantinya dengan set swt_path=< path ke file swt.jar Anda masing-masing, untuk x86 itu di sdk \ tools \ lib \ x86 dan x64 untuk di sdk \ tools \ lib \ x86_64 >
  2. Simpan dan tutup file dan sekarang Anda bisa pergi ..

1

Coba atur JAVA_HOME Anda ke folder yang benar. Google untuk mengatur variabel lingkungan di Windows.


Saya mengikuti instruksi ini: wso2.org/project/wsas/java/2.0-beta/docs/setting-java-home.html tetapi tidak berhasil
Wallter

Aku benci mengatakannya ... tapi sudahkah kamu memulai kembali?
Topher Fangio

Restart tidak diperlukan untuk menginstal Java.
Thorbjørn Ravn Andersen

1
JAVA_HOME juga tidak diperlukan. Ini adalah PATH yang digunakan untuk menemukan javaw.exe. (JAVA_HOME digunakan oleh beberapa aplikasi lain seperti semut, jadi toh pengaturannya tidak salah)
user85421

1

Saya juga mengalami masalah ini. Kasus saya adalah sebagai berikut:

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

Dalam tulisan:

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

Saya menemukan tipe nilai registri Pathmereka berbeda, jadi saya memeriksa apakah path tersebut valid atau tidak dengan perintah berikut:

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

Akibatnya, saya mereset lingkungan lokal (pengguna saat ini) dengan perintah berikut ( Setx ):

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

Namun, dalam proses saat ini, itu tidak dapat menyebarkan perubahan tersebut ke proses yang berjalan lainnya.

Namun, jika Anda secara langsung mengubah variabel lingkungan pengguna di Editor Registri,

modifikasi pada variabel lingkungan tidak menghasilkan perubahan langsung. Misalnya, jika Anda memulai Command Prompt lain setelah melakukan perubahan, variabel lingkungan akan mencerminkan nilai sebelumnya (bukan yang sekarang). Perubahan tidak berlaku sampai Anda keluar lalu masuk kembali.

Untuk melakukan perubahan ini tanpa harus keluar, tayangkan pesan WM_SETTINGCHANGE ke semua jendela dalam sistem, sehingga aplikasi apa pun yang tertarik (seperti Windows Explorer, Manajer Program, Manajer Tugas, Panel Kontrol, dan sebagainya) dapat melakukan pembaruan.

Lihat detail di Cara menyebarkan variabel lingkungan ke sistem

Di sini, saya memberikan skrip PowerShell untuk melakukannya:

# 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

Periksa Window> Preferences> Java> Install JREs. Pastikan ada sesuatu di sana; jika tidak ada, tambahkan satu.

Apakah Anda baru saja memperbarui JDK Anda?


Ya saya mencoba menambahkan add-on android. Tapi tidak (seperti yang dikatakan Topher Fangio,) saya tidak bisa memulai Eclipse sekarang.
Wallter

0

JDK tidak menginstal JVM di jalur default.

Kecuali Anda membutuhkan alat eksternal untuk menjalankan seperti semut, non-JDK cukup untuk menjalankan Eclipse. Cara termudah untuk menginstal JVM adalah pergi ke http://java.com dan biarkan instal apa pun yang ingin diinstal.

Kemudian klik dua kali biner Eclipse lagi.


Saya menginstal ulang (bahkan ditanya apakah saya ingin menginstalnya kembali) tanpa hasil. (Saya melakukan kedua plugin Google Chrome 14 - atau sesuatu seperti itu && Firefox)
Wallter

Anda pergi ke java.com? Bukan javasoft.com?
Thorbjørn Ravn Andersen

0

setel variabel JAVA_HOME dan iklan JAVA_HOME / bin ke variabel jalur evnrionment.


seperti ini: "C: \ Program Files (x86) \ Java; C: \ Program Files (x86) \ Java \ jdk1.6.0_14 \ bin"? - masih tidak berhasil :)
Wallter

Merujuk JAVA_HOME dalam variabel path harus disematkan:% JAVA_HOME% \ bin
Heri

Bagi saya (Windows 10 64 bit + Eclipse 4.10) triknya adalah menambahkan, selain JAVA_HOMEvariabel lingkungan, JRE_HOMEvariabel, yang ditetapkan ke lokasi javaw.exelokasi (yang mungkin selalu merupakan folder bin dari JDK yang diinstal ).
Guy Avraham

0

Saya memiliki masalah yang sama (Windows 7 x64, 64bit JDK, 32bit Eclipse), dan saya menemukan 2 solusi:

  • Instal Eclipse versi 64 bit (ditemukan dengan mengklik tab "Pengembangan Builds" pada halaman unduhan.)
  • Instal JDK versi 32bit.

Lihat tetapi Anda menggunakan Windows 7 x86 di mana saya menggunakan x64 --- karena orang lain telah menyatakan bahwa masalah ini mungkin merupakan glych pada bagian SUN dalam pemrograman mereka tentang bagaimana halaman web mereka 'mendeteksi versi' (yaitu x64 atau x86) Anda harus menggunakan
Wallter

Koreksi, saya menggunakan Windows 7 x64
Tim

0

Saya memiliki masalah yang sama. Cara mudah, bagi saya untuk memperbaikinya adalah dengan menginstal JRE dan gerhana sebagai x86 atau x64. Ketika jenis bit mereka tidak cocok, gerhana tidak dapat menemukannya. Jadi, jika itu bukan masalah besar bagi Anda untuk menghapus dan menginstal ulang untuk membuat mereka cocok, saya akan melakukannya.

Saya akhirnya menginstal: Java Runtime Environment 1.7.0.3 (64-bit) dan Eclipse Indigo (3.7) (64-bit)

Maka itu hanya bekerja.


0

Ketika saya hanya menyalin javaw, kesalahan kedua terjadi, tidak ada file java.dll, ketika saya menyalinnya juga, gerhana tidak dimulai, apa yang saya lakukan adalah saya menyalin seluruh folder jdk ke folder gerhana dan mengganti nama id menjadi jre. Masalah terpecahkan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.