Pertanyaan JAVA_HOME tidak didefinisikan dengan benar


Saya menginstal java jdk hotspot 1.7. Ketika saya mengetik java -version Saya mendapatkan:

java version "1.7.0" 
Java(TM) SE Runtime Environment (build 1.7.0-b147)

Ini benar.

Dan saya mencoba menginstal maven, dan menambahkan ke /etc/environment mengajukan:

JAVA_HOME=/usr/lib/jvm/jdk1.7.0
M2_HOME=/usr/local/apache-maven/apache-maven-3.0.4
MAVEN_HOME=/usr/local/apache-maven/apache-maven-3.0.4
M2=/usr/local/apache-maven/apache-maven-3.0.4/bin

Sekarang Ketika saya mengetikkan mvn, saya mendapatkan:

Error: JAVA_HOME is not defined correctly.   We cannot execute
”/usr/lib/jvm/jdk1.7.0”/bin/java

Namun saya tidak menempatkan "mark untuk JAV_HOME var dalam file lingkungan.

Ini mencoba lari dari

”/usr/lib/jvm/jdk1.7.0”/bin/java

jalan, Sebenarnya itu seharusnya

/usr/lib/jvm/jdk1.7.0/bin/java

Ketika saya memerintah

$JAVA_HOME

Saya mendapatkan:

bash: ”/usr/lib/jvm/jdk1.7.0”: No such file or directory

Saya yakin jalannya (/usr/lib/jvm/jdk1.7.0) benar.


14
2018-06-28 16:58


asal


Bisakah Anda melakukan ls -al /usr/lib/jvm dan pastikan bahwa 'jdk1.7.0' adalah format untuk nama direktori? Ketika menggunakan Oracle, mereka cenderung menggunakan nama folder yang aneh - Thomas Ward♦
ls /usr/lib/jvm/java-7 dan ls "/usr/lib/jvm/java-7"/bin hasil, dan harus menghasilkan hasil yang sama untuk saya (yang tidak kosong). Bagian terakhir, java-7, adalah hasil dari modifikasi manual - dapat dan akan sedikit berbeda untuk Anda. Verifikasi, ada folder seperti itu (jdk1.7.0). - user unknown
saya mendapatkan total 44 drwxr-xr-x 3 root root 4096 Jun 28 01:57 . drwxr-xr-x 184 root root 36864 Jun 28 01:34 .. drwxr-xr-x 10 root root 4096 Jun 27 23:30 jdk1.7.0  setelah menjalankan ini ls -al /usr/lib/jvm  perintah - Kamoliddin
Perhatikan bahwa untuk melihat variabel di konsol Anda, Anda diharapkan untuk mengetik: echo $VARNAME. Jika Anda baru saja melakukannya $VARNAME maka itu akan menjalankan apa yang ada di variabel itu. - Alexis Wilke


Jawaban:


JAVA_HOME harus di set ke nama direktori itu mengandung itu bin direktori bahwa mengandung Java executables (khususnya, java diri).

Dengan asumsi Anda memiliki /usr/lib/jvm/jdk1.7.0 direktori, itu mungkin berisi jre subdirektori yang berisi bin direktori yang berisi java dan executable terkait.

Jadi Anda mungkin harus mengatur JAVA_HOME untuk /usr/lib/jvm/jdk1.7.0/jre daripada /usr/lib/jvm/jdk1.7.0.


14
2018-06-29 12:17



Menginstal JDK, bukan hanya JRE yang biasanya mengarah ke direktori JDK yang berisi direktori bin, serta JRE-dir, yang itu sendiri berisi direktori bin. Tapi JAVA_HOME selalu diatur ke dir orangtua, bukan ke jre dir. - user unknown
Menarik, saya perlu mengaturnya ke jdk no? Saya akan menulis kode di java, mengkompilasi, menyebarkan, dll. - Kamoliddin
@Kamoliddin Jika Maven menggunakannya $JAVA_HOME untuk tahu dimana javac dan biner pengembangan lainnya, maka ya, Anda harus mengaturnya ke jdk dir berisi bin dir yang berisi binari-binari itu. - Eliah Kagan
Terima kasih, saya tidak tahu, itu berhasil setelah restart, saya rasa saya tidak perlu me-restart untuk perubahan yang akan diterapkan. Saya tidak mengubah apa pun. Itu berhasil. - Kamoliddin
Tidak yakin mengapa dia menggunakan jdk1.7.0 sama sekali .. /usr/lib/jvm/java harus cukup untuk keduanya java dan javac. Alternatif menangani ini - Brian