Bagaimana cara mengatur java_home di Windows 7?

422

Saya pergi ke Variabel Lingkungan di 'Sistem' di panel kontrol dan membuat dua variabel baru, satu untuk variabel pengguna dan satu untuk variabel sistem. Keduanya bernama JAVA_HOME dan keduanya menunjuk ke

C: \ Sun \ SDK \ jdk \ bin

Tetapi untuk beberapa alasan, saya masih mendapatkan kesalahan di bawah ini ketika menjalankan perintah Java ...

BUILD FAILED
C:\Users\Derek\Desktop\eclipse\eclipse\glassfish\setup.xml:161: The following error  occurred while executing this line:
C:\Users\Derek\Desktop\eclipse\eclipse\glassfish\setup.xml:141: The following error occurred while executing this line:
C:\Users\Derek\Desktop\eclipse\eclipse\glassfish\setup.xml:137: Please set java.home to a JDK installation

Total time: 1 second
C:\Users\Derek\Desktop\eclipse\eclipse\glassfish>lib\ant\bin\ant -f setup.xml
Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre6\lib\tools.jar
Buildfile: setup.xml

Bagaimana saya bisa memperbaiki masalah ini?

Derek
sumber
3
Anda menutup cmd dan membukanya kembali? Juga sepertinya Anda diarahkan ke JRE bukan JDK. Sudahkah Anda menginstal JDK?
kemarahan
Saya telah menginstal JDK dan terletak di C: \ Sun \ SDK \ jdk \ bin yang telah saya atur java_home.
Derek
Saya bahkan telah memulai kembali ......... beberapa kali sejak ........
Derek
Masih sepertinya mencari di C: \ Program Files \ Java \ jre6 \ lib \ c Bisakah Anda melakukan echo% JAVA_HOME% di command prompt Anda dan lihat apa yang dilaporkan
marah
3
Solusinya adalah:
Menghilangkan

Jawaban:

673

Temukan Direktori Instalasi JDK

Pertama, Anda perlu mengetahui jalur instalasi untuk Java Development Kit.

Buka jalur instalasi default untuk JDK:

C:\Program Files\Java

Harus ada subdirektori seperti:

C:\Program Files\Java\jdk1.8.0_172

Catatan: kita hanya perlu meletakkan path ke jdk tanpa / bin pada akhirnya (seperti yang disarankan di banyak tempat). mis. C: \ Java \ jdk1.8.0_172 dan NOT C: \ Java \ jdk1.8.0_172 \ bin!


Setel Variabel JAVA_HOME

Setelah Anda memiliki jalur instalasi JDK:

  1. Klik kanan ikon My Computer di desktop Anda dan pilih Properties .
  2. Klik tab Advanced , lalu klik tombol Environment Variables .
  3. Di bawah Variabel Sistem , klik Baru.
  4. Masukkan nama variabel sebagai JAVA_HOME .
  5. Masukkan nilai variabel sebagai jalur instalasi untuk Java Development Kit.
  6. Klik OK .
  7. Klik Terapkan Perubahan .

Catatan: Anda mungkin perlu me-restart Windows

Artikel lengkapnya ada di sini, di blog saya: Mengatur JAVA_HOME Variabel di Windows .

Merampas
sumber
121
Terima kasih. akhirnya saya menyadari bahwa kita hanya perlu meletakkan path ke jdk tanpa / bin pada akhirnya (seperti yang disarankan pada banyak tempat). mis. C: \ Java \ jdk1.6.0_31 dan NOT C: \ Java \ jdk1.6.0_31 \ bin!
salocinx
24
Tuhan melarang ada installer yang melakukan langkah ini untuk Anda :) Saya baru saja beralih dari versi Enterprise ke versi Komunitas dan saya yakin saya mengunduh hal yang salah karena hanya satu klik pada versi Enterprise: p
John Humphreys - w00te
6
Kadang-kadang, perubahan sistem varible tidak berlaku sampai Anda me-restart windows.
Andy
11
Metode yang lebih cepat adalah dengan menekan Mulai, kemudian mulai mengetik variabel lingkungan
Casebash
4
/Java/jre*bukan direktori JDK, ini adalah direktori Java Runtime Enviroment. JDK berada di direktori terpisah kecuali jika Anda ingin melakukan hack
ericn
157

Apa yang berhasil bagi saya adalah menambahkan %JAVA_HOME%\binke variabel lingkungan Path dengan JAVA_HOMEvariabel lingkungan menunjuk ke jdkfolder.

fogedi
sumber
126

Anda harus menginstal JDK terlebih dahulu di sistem Anda.

Atur Java Home

JAVA_HOME = C: \ Program Files \ Java \ jdk1.7.0 [Lokasi Direktori Instalasi JDK Anda]

Setelah Anda memiliki jalur instalasi JDK:

  • Klik kanan ikon My Computer pada
  • Pilih Properties.
  • Klik tab Pengaturan sistem tingkat lanjut di sisi kiri layar Anda
  • Popup Aadvance terbuka.
  • Klik pada tombol Variabel Lingkungan.

masukkan deskripsi gambar di sini

  • Di bawah Variabel Sistem, klik Baru.
  • Masukkan nama variabel sebagai JAVA_HOME.
  • Masukkan nilai variabel sebagai jalur instalasi untuk Java Development Kit.
  • Klik OK.
  • Klik Terapkan Perubahan.

Setel JAVA Path di bawah variabel sistem

PATH = C: \ Program Files \ Java \ jdk1.7.0; [Tambahkan Nilai dengan titik koma]

periksa di sini

Ankit jain
sumber
14
Haruskah JAVA_HOME mengandung "\ bin"? Jawaban lain di sini sepertinya menyarankan "bin" harus dimasukkan untuk PATH tetapi tidak untuk JAVA_HOME.
devuxer
72
JAVA_HOME TIDAK boleh mengandung \ bin.
Larry Silverman
5
[PLUS SATU] Bunga-bunga yang bagus!
GingerHead
Tetapi pada Gambar Anda masukkan dengan \ bin.
NaveenDA
32

Dalam cmd (sementara untuk jendela cmd itu):

set JAVA_HOME="C:\\....\java\jdk1.x.y_zz"

echo %JAVA_HOME%

set PATH=%PATH%;%JAVA_HOME%\bin

echo %PATH%
sgrillon
sumber
2
Benar. Jika Anda menggunakan setxmaka JAVA_HOMEmasih akan diatur setelah Anda mematikan komputer Anda. Maka Anda tidak perlu mengaturnya lagi. Juga bintidak diperlukan.
Tenzin
Ya, tetapi jika Anda tidak ingin menginstal Java secara resmi, maka seperti kata sgrillon, Anda dapat mengaturnya sementara untuk instance itu. Lebih baik lagi, membuat file batch yang Anda dapat menjalankan untuk membuka jendela command prompt dan set JAVA_HOME, PATHdan CLASSPATH, maka Anda dapat memiliki “portable” lingkungan Java.
Synetech
Memang benar tetapi "" tidak diperlukan untuk menyetel alamat JAVA_HOME
Aboozar Rajabi
1
@Aboozar Rajabi, Anda perlu "" jika ... path berisi spasi.
sgrillon
19

Anda perlu mengaturnya C:\Sun\SDK\jdk(Anggap itu adalah tempat JDK diinstal - Ini bukan default) - Jangan masukkan \ bin C:\Sun\SDK\jdk\bin.

Jika aplikasi Anda hanya berjalan saat Anda masuk sebagai pengguna saat ini, maka masukkan ke dalam variabel pengguna - Jika perlu dijalankan untuk semua pengguna di sistem Anda, maka masukkan ke dalam variabel Sistem.

Anda juga mungkin perlu menambahkan %JAVA_HOME%\binjalur (Juga tergantung apakah Anda menjalankannya hanya dari pengguna atau dari semua pengguna, termasuk Sistem)

Romain Hippeau
sumber
17

http://javahowto.blogspot.com/2006/05/javahome-vs-javahome.html

Control Panel> Java, tab Java, klik tombol Lihat. Dalam Parameter Runtime, masukkan:

-Djava.home=YOUR_PATH_HERE

Atau ketika Anda menjalankan Java Anda dapat menambahkan bahwa saklar baris perintah ke perintah:

java -Djava.home=PATH SomeJavaApp
Ricket
sumber
Hal panel kontrol tampaknya berlaku untuk versi komersial Java saja. Bukan untuk versi GPL.
Thomas Weller
7

Bagi mereka yang masih bingung dengan masalah ini (saya mencoba semua saran di atas) -

Jika Anda menggunakan Windows versi 64-bit dan Anda telah menginstal JDK 32-bit, selain menyesuaikan PATHvariabel, Anda mungkin perlu menyesuaikan variabel registri juga.

Saya mencabut rambut saya, setelah mengatur PATHvariabel saya dengan benar - masih tidak berhasil - dan kemudian hanya menemukan entri Java yang "dikosongkan" dalam registri saya, yang tampaknya batal untuk memperbaiki Java Runtime Environment yang "salah".

Dengan menggunakan Process Monitoruntuk menonton program yang saya coba untuk mulai, untuk mengendus di mana ia mencari di registri untuk Java (Runtime Environment), saya dengan bangga menemukan bahwa itu mencari dalam versi 32-bit entri registri, ditemukan diHKEY_LOCAL_MACHINE\SOFTWARE\**Wow6432Node**\JavaSoft\Java Runtime Environment .

Di dalam kunci itu, Anda harus menemukan subkey dari versi Java yang berbeda diinstal (dulu dan / atau sekarang). Klik pada subkey dari versi terbaru (subkey saya saat ini 1.7.0_25, misalnya). Setelah mengklik pada subkunci itu, Anda akan melihat nilai string registri tercantum di sebelah kanan, dan khususnya, JavaHomedan RuntimeLib. Anda perlu mengubah nilai-nilai kedua nilai untuk mencerminkan masing-masing folder saat ini dan file jvm.dll.

Sebagai contoh, dalam kasus saya, nilai-nilai itu (sebelumnya) masing-masing ditetapkan pada C:\Program Files (x86)\Java\jre7dan C:\Program Files (x86)\Java\jre7\bin\client\jvm.dllyang tidak ada pada mesin saya. Saya harus memperbarui ini ke folder dan file saat ini C:\Program Files (x86)\Java\jdk1.7.0_25\jredanC:\Program Files (x86)\Java\jdk1.7.0_25\jre\bin\client\jvm.dll .

Sekali lagi, ini akan sepenuhnya bergantung pada versi Java (JDK dan / atau JRE) apa yang telah Anda instal - 32 atau 64-bit - dan jenis sistem operasi yang Anda gunakan - 32 atau 64-bit. Hanya tahu bahwa mereka tercermin di lokasi yang berbeda dalam registri (seperti Wow6432Nodeuntuk aplikasi 32 bit, dalam kasus saya dengan JDK 32-bit yang diinstal pada mesin 64-bit).

Sekarang saya telah memperbarui kedua nilai registri, program saya berjalan dengan sempurna, tanpa cegukan atau keluhan lagi tentang Java Runtime Environment yang hilang (berasal dari registri).

Coldblackice
sumber
1
Saya menggunakan mesin windows 7 64-bit dan saya memiliki keduanya: C: \ Program Files (x86) \ Java \ dan C: \ Program Files \ Java \ Sekarang pertanyaan saya adalah apa yang harus saya tuju pada java_home saya?
voidMainReturn
Menarik; Saya hanya memiliki folder Java di bawah folder x86.
B. Clay Shannon
Di bawah C: \ Program Files (x86) \ Java \ jdk1.7.0_25 \ jre \ bin Saya tidak punya klien direktori, hanya ada di bawah C: \ Program Files (x86) \ Java \ jre7 \ bin. Apa yang harus saya lakukan?
Pavol Havlik
Pada windows 7, setelah mencari kata kunci "1.8.0_74", saya menemukan beberapa pendaftar menggunakan regedit di HKEY_LOCAL_MACHINE / SOFTWARE / JavaSoft / Java Development Kit / 1.8.0_74 / atau ../1.8.0_65 dan semua lainnya terpasang sebelumnya ... Setelah menghapus satu per satu registri dari bawah ke java terbaru saya yang terinstal 1.8.0_112, sekarang YourKit java profiler (profiler.exe) berfungsi tanpa kesalahan: "Terjadi kesalahan saat memulai C: \ Program Files \ Java \ jdk1.8.0_74 \ bin \ javaw.exe ".
David
7

Ini adalah solusi resmi untuk pengaturan lingkungan Java dari www.java.com - di sini .

Ada solusi untuk Windows 7, Windows Vista, Windows XP, Linux / Solaris dan shell lainnya.


Contoh

Windows 7

  1. Pilih Komputer dari menu Mulai
  2. Pilih Properti Sistem dari menu konteks
  3. Klik Pengaturan sistem tingkat lanjut -> tab Tingkat Lanjut
  4. Klik pada Variabel Lingkungan, di bawah Variabel Sistem, temukan PATH, dan klik padanya.
  5. Di jendela Edit, modifikasi PATH dengan menambahkan lokasi kelas ke nilai untuk PATH. Jika Anda tidak memiliki PATH item, Anda dapat memilih untuk menambahkan variabel baru dan menambahkan PATH sebagai nama dan lokasi kelas sebagai nilainya.
  6. Buka kembali jendela Command prompt, dan jalankan kode Java Anda.
HATCHA
sumber
1
Instruksi resmi tidak berguna. Mereka hanya memberikan instruksi umum tentang cara mengatur variabel lingkungan daripada menunjukkan nilai yang perlu ditetapkan. Mereka hanya mengatakan untuk mengaturnya ke "lokasi kelas" yang membingungkan dan tidak berarti.
Synetech
Instruksi ini tidak menetapkan JAVA_HOME, variabel yang sepenuhnya terpisah dari PATH yang diperlukan untuk beberapa program.
Jules
6

Windows 7

  1. Pergi ke Panel Kontrol \ Semua Item Panel Kontrol \ Akun Pengguna menggunakan Explorer (bukan Internet Explorer!)

    atau

    • klik tombol Start

      Mulailah

    • klik gambar Anda

      klikOnPhoto

  2. Ubah variabel lingkungan saya

    Ubah variabel lingkungan saya

  3. Baru...

    baru

    (jika Anda tidak memiliki cukup izin untuk menambahkannya di bagian variabel sistem, tambahkan ke bagian variabel pengguna)

  4. Tambahkan JAVA_HOME sebagai nama Variabel dan lokasi JDK sebagai nilai Variabel> OK

    sunting variabel sistem ok

Uji:

  • buka yang baru konsol (cmd)
  • Tipe set JAVA_HOME
    • output yang diharapkan: JAVA_HOME=C:\Program Files\Java\jdk1.8.0_60
ROMANIA_engineer
sumber
6

Kita perlu membuat perbedaan antara dua variabel lingkungan yang dibahas di sini secara bergantian. Salah satunya adalah variabel JAVA_HOME . Yang lainnya adalah variabel Path . Setiap proses yang mereferensikan variabel JAVA_HOME mencari jalur pencarian ke JDK, bukan JRE. Penggunaan variabel JAVA_HOME tidak dimaksudkan untuk kompiler Java itu sendiri. Kompiler mengetahui lokasinya sendiri. Variabel dimaksudkan untuk perangkat lunak lain agar lebih mudah menemukan kompiler. Variabel ini biasanya digunakan oleh perangkat lunak IDE untuk mengkompilasi dan membangun aplikasi dari kode sumber Java. Sebaliknya, juru bahasa CMD Windows, dan banyak perangkat lunak pihak pertama dan ketiga lainnya merujuk variabel Path, bukan variabel JAVA_HOME.

Gunakan case 1: Kompilasi dari CMD

Jadi misalnya, jika Anda tidak menggunakan perangkat lunak IDE, dan Anda hanya ingin dapat mengkompilasi dari CMD, terlepas dari direktori kerja Anda saat ini, maka yang Anda inginkan adalah mengatur variabel Path dengan benar. Dalam kasus Anda, Anda bahkan tidak memerlukan variabel JAVA_HOME. Karena CMD menggunakan Path, bukan JAVA_HOME untuk menemukan kompiler Java.

Use case 2: Kompilasi dari IDE

Namun, jika Anda sedang menggunakan beberapa perangkat lunak IDE, maka Anda harus melihat dokumentasi pertama-tama. Mungkin diperlukan JAVA_HOME untuk diatur, tetapi mungkin juga menggunakan nama variabel lain untuk tujuan yang sama. Standar de-facto selama bertahun-tahun adalah JAVA_HOME, tetapi ini mungkin tidak selalu demikian.

Use case 3: Kompilasi dari IDE dan CMD

Jika selain perangkat lunak IDE Anda juga ingin dapat mengkompilasi dari CMD, terlepas dari direktori kerja Anda saat ini, maka selain itu variabel JAVA_HOME Anda juga mungkin perlu menambahkan jalur pencarian JDK ke variabel Path.

JAVA_HOME vs. Path

Jika masalah Anda berkaitan dengan kompilasi Java, maka Anda ingin memeriksa variabel JAVA_HOME, dan Path (jika ada). Jika masalah Anda terkait dengan menjalankan aplikasi Java, maka Anda ingin memeriksa variabel Path Anda.

Variabel jalur digunakan secara universal di semua sistem operasi. Karena didefinisikan oleh sistem, dan karena itu adalah variabel default yang digunakan untuk menemukan JRE, hampir tidak pernah ada masalah menjalankan aplikasi Java. Terutama tidak pada Windows di mana installer perangkat lunak biasanya mengatur semuanya untuk Anda. Tetapi jika Anda menginstal secara manual, hal yang paling aman untuk dilakukan mungkin melewatkan variabel JAVA_HOME sama sekali dan hanya menggunakan variabel Path untuk semuanya, baik untuk JDK dan JRE. Setiap versi terbaru dari perangkat lunak IDE harus dapat mengambil dan menggunakannya.

Symlinks

Tautan simbolis mungkin menyediakan cara lain untuk merujuk jalur pencarian JDK dengan membonceng salah satu variabel lingkungan yang ada.

Saya tidak yakin tentang rilis Oracle / Sun JDK / JRE versi sebelumnya, tetapi setidaknya installer untuk jdk1.8.0_74 menambahkan path pencarian C:\ProgramData\Oracle\Java\javapathke variabel Path, dan menempatkannya di awal nilai string. Direktori ini berisi tautan simbolis ke java.exe, javaw.exe dan javaws.exe di direktori JRE.

Jadi setidaknya dengan Java 8 JDK, dan mungkin Java 8 JRE standalone, tidak ada konfigurasi variabel lingkungan yang perlu dilakukan untuk JRE. Selama Anda menggunakan paket penginstal untuk mengaturnya. Mungkin ada perbedaan pada instalasi Windows Anda. Perhatikan bahwa JRE Oracle dibundel dengan JDK.

Jika Anda pernah menemukan bahwa konfigurasi Java JDK Anda menggunakan versi kompiler yang salah, atau tampaknya berfungsi dengan sihir, tanpa didefinisikan secara eksplisit (tanpa menggunakan mantra), maka Anda mungkin memiliki symlink di suatu tempat di variabel lingkungan Anda . Jadi, Anda mungkin ingin memeriksa symlink.

Samir
sumber
5

goto Mycomputer (PC ini) -> klik kanan -> pilih properti -> Pengaturan sistem lanjutan -> variabel lingkungan-> dalam variabel sistem klik tombol " Baru " dan tulis JAVA_HOME dalam nama variabel dan jalur C: \ Program Files \ Java \ jdk1. 8.0_131 jika jdk hadir dalam nilai variabel-> klik ok.

tutup dan buka kembali prompt perintah setelah mengatur JAVA_HOME. Terkadang perubahan tidak mencerminkan cmd yang dibuka sebelum mengatur JAVA_HOME.

Anda juga dapat mengatur JAVA_HOME melalui terminal itu sendiri: SET JAVA_HOME = "C: \ Program Files (x86) \ Java \ jdk1.8.0_131"

Shreya Sharma
sumber
4

Dalam Eclipse: Window->Preferences->Java->Installed JREs

Gunakan fitur pencarian untuk memastikan instalasi Java terbaru Anda terdaftar; kemudian pastikan itu adalah salah satu yang diperiksa. Ini harus menjadi JDK bukan JRE.

Berg
sumber
Instruksi ini tidak mengatur JAVA_HOME, yang tidak terkait dengan gerhana.
Jules
4

Saat menambahkan direktori Java Anda ke PATHvariabel Anda, Anda mungkin ingin meletakkannya tepat di awal. Saya punya masalah, bahwa menempatkan direktori Java di akhir PATHtidak akan berfungsi. Setelah memeriksa, saya telah menemukan java.exedi Windows\System32direktori saya dan sepertinya yang pertama menang, ketika ada beberapa file dengan nama yang sama di PATH...

pengguna2414128
sumber
Ketika / jika Anda menginstal Java dengan installer, itu akan menggantikan salinan dari java.exedan javaw.exedi folder sistem dengan salinan dari JRE / JDK, jadi itu harus tetap berfungsi. Jika Anda menginstalnya secara manual (hanya membongkar arsip), maka Anda memang harus berhati-hati terhadap salinan yang sedang dijalankan.
Synetech
Instruksi ini tidak menetapkan JAVA_HOME, variabel yang sepenuhnya terpisah dari PATH yang diperlukan untuk beberapa program.
Jules
3

Jalankan Eclipse sebagai Administrator.

Itu memecahkan masalah saya. Saya masih menggali logika di baliknya.

muscailie
sumber
1
Saya tidak bisa mengatakan saya mengerti persis ini, tapi mungkin gerhana sebenarnya hanya memberikan pesan kesalahan yang salah di sini. Ketika Anda menjalankannya sebagai non-admin, itu tidak dapat menghapus file .jar atau sesuatu dan kemudian secara palsu melaporkan bahwa ia tidak menemukan javac. Bagaimanapun, solusi ini juga bekerja untuk saya.
Jess
jika Anda menjalankan Eclipse di windows server 2012 R2 seperti dalam kasus saya, menjalankan eclipse sebagai administrator bekerja untuk saya. Ingat juga untuk mengatur java_home ke folder file program dan bukan folder file program (86). Semoga yang ini membantu seseorang.
ombiro
2

jika Anda belum me-restart komputer Anda setelah menginstal jdk hanya me-restart komputer Anda.

jika Anda ingin membuat portable java dan mengatur path sebelum menggunakan java, buat saja file batch yang saya jelaskan di bawah ini.

jika Anda ingin menjalankan file batch ini ketika komputer Anda mulai cukup masukkan shortcut file batch Anda di folder startup. Di windows 7 folder startup adalah "C: \ Users \ user \ AppData \ Roaming \ Microsoft \ Windows \ Start Menu \ Programs \ Startup"

buat file batch seperti ini:

set Java_Home=C:\Program Files\Java\jdk1.8.0_11
set PATH=%PATH%;C:\Program Files\Java\jdk1.8.0_11\bin

Catatan: java_homedan pathvariabel. Anda dapat membuat variabel apa saja sesuai keinginan. misalnya set amir=good_boydan Anda dapat melihat amir oleh %amir%atau Anda dapat melihat java_home oleh%java_home%

Amir
sumber
0

Setelah berjam-jam bekerja di sekitar sebagian besar solusi di sini, masalahnya diselesaikan bagi saya hanya dengan menginstal JDK 32-bit.

Vahid Ghadiri
sumber
1
Yang baik-baik saja jika itu yang Anda inginkan, tetapi beberapa orang memilih untuk tidak benar-benar menginstal Java dan hanya mengatur lingkungan "portabel" secara manual, dalam hal ini, Anda perlu tahu variabel lingkungan apa yang perlu ditetapkan.
Synetech
0

Anda mungkin ingin melihat ke folder Windows / System32 untuk file-file berikut: - java.exe - javaw.exe - javaws.exe

Karena, variabel path menyertakan file-file ini, Anda bisa mendapatkan sakit kepala mencoba mencari tahu mengapa java -version atau javac -version terus menunjuk ke JAVA_HOME lama: ganti nama file-file itu, ambil ekstensi dengan garis bawah, misalnya. Dan kemudian, Anda hanya perlu membuat variabel JAVA_HOME, menambahkannya ke variabel path (mis.,% JAVA_HOME%) dan menambahkan partikel "\ bin". Dengan cara ini Anda hanya perlu mengubah variabel JAVA_HOME yang mengarah ke JRE atau JDK yang berbeda dan memiliki beberapa instalasi java hanya dengan mengatur JAVA_HOME.

Ini juga berarti bahwa lebih baik untuk menginstal Java secara manual, tanpa installer, sehingga Anda dapat mempermainkannya.

Camilo
sumber