JAVA_HOME diatur ke direktori yang salah

13

Halo sesama pengguna Ubuntu,

Saya mencoba mempelajari cara menulis modifikasi untuk Minecraft. Untuk mengikuti tutorial yang saya gunakan, saya harus menjalankan "gradlew". Perintahnya adalah sebagai berikut

./gradlew setupDecompWorkspace eclipse

Ini menghasilkan yang berikut ini

ERROR: JAVA_HOME is set to an invalid directory: /usr/local/java/jdk1.8.0_20

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.

Jelas saya tidak tahu harus berbuat apa atau bahkan apa artinya ini. Bantuan apa pun sangat kami hargai.

Joseph_carp
sumber

Jawaban:

30

Sebelum menjalankan perintah, coba masukkan:

export JAVA_HOME="path_to_java_home"

Di mana path_to_java_home adalah folder tempat bin / java Anda.

Jika java diinstal dengan benar, Anda dapat menemukan lokasi itu, dengan menggunakan perintah:

readlink -f $(which java)

Jangan lupa untuk menghapus bin / java dari ujung jalan sambil memasukkannya ke JAVA_HOME

Andrew Onischuk
sumber
Oke, saya melakukan apa yang Anda katakan, namun, menghasilkan hasil yang sama kecuali jalannya telah berubah.
Joseph_carp
1
Jika Anda menjalankan $JAVA_HOME/bin/java -versionsetelah ekspor, apakah berfungsi dengan baik menampilkan versi java?
Andrew Onischuk
$ JAVA_HOME / bin / java -versi menghasilkan bash: /usr/local/java/jdk1.8.0_20/bin/java: Tidak ada file atau direktori seperti itu
Joseph_carp
2
Sepertinya ekspor Anda salah. Tolong tunjukkan perintah ekspor yang Anda gunakan. Dan juga menunjukkan readlink -f $(which java)output
Andrew Onischuk
5
Anda harus mengaturnya ke folder di mana bin / java artinya export JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64/jre"tidakexport JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java"
Andrew Onischuk
13

Untuk membuatnya otomatis di Linux / Ubuntu, tambahkan baris ini di akhir Anda .bashrc:

JAVA_HOME=$(dirname $( readlink -f $(which java) ))
JAVA_HOME=$(realpath "$JAVA_HOME"/../)
export JAVA_HOME

Ini dapat dijalankan java, kemudian naik ke level direktori

Untuk menetapkan versi java default / dapat dieksekusi pada Debian / Ubuntu, jalankan ini sekali :

sudo update-alternatives --config java

Ini membangun jawaban sebelumnya oleh Andrew Onischuk (terima kasih!)

Tudor Ilisoi
sumber
Kerjanya seperti pesona. Ini memecahkan masalah saya setelah 3 hari.
Hitesh Sarsava
1

Cobalah untuk mengedit / usr / bin / gradle

Komentari baris "ekspor JAVA_HOME = / usr / lib / jvm / default-java" dengan #

ini: #export JAVA_HOME = / usr / lib / jvm / default-java

starwatcher
sumber
1

Dapatkan jalur Java Anda menggunakan perintah

whereis java

Berikut ini adalah output yang mungkin tergantung pada versi Java default Anda

java: /usr/bin/java /usr/share/java /usr/lib/jvm/jdk1.8.0_241/jre/bin/java

Maven perlu memilih lokasi Java (rumah) sehingga Anda dapat mengekspor path Java menggunakan perintah berikut

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_241/jre

Ini akan memungkinkan Maven untuk memilih versi java dan lokasi di file / etc / environment

Secara opsional Anda dapat menambahkan ini di / etc / environment secara manual menggunakan perintah berikut

sudo nano /etc/environment

dan edit JAVA_HOME=/usr/lib/jvm/jdk1.8.0_241/jre/

Jose Mhlanga
sumber