Saya baru mengenal sistem Linux dan sepertinya ada terlalu banyak folder Java.
java -versi memberi saya:
- versi java "1.7.0_55"
- OpenJDK Runtime Environment (rhel-2.4.7.1.el6_5-x86_64 u55-b13)
- OpenJDK 64-Bit Server VM (build 24.51-b03, mode campuran)
Ketika saya mencoba membangun proyek Maven, saya mendapatkan kesalahan:
Error: JAVA_HOME is not defined correctly.
We cannot execute /usr/java/jdk1.7.0_05/bin/java
Bisakah Anda memberi tahu saya file mana yang perlu saya modifikasi untuk root dan juga bukan root dan di mana tepatnya java berada?
java
linux
java-home
path-variables
Bosco
sumber
sumber
JAVA_HOME
, tidak ada salahnya mengaturnya juga.source /etc/profile
agar perubahan segera berlaku juga!/etc/profile.d/jdk.sh
mengambang di sistem saya.Untuk semua pengguna, saya akan merekomendasikan menempatkan baris berikut di
/etc/profile
Ini akan memperbarui secara dinamis dan bekerja dengan baik dengan sistem alternatif . Namun perlu dicatat bahwa pembaruan hanya akan terjadi di shell login baru.
sumber
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:/bin/java::")
saja - perhatikan bahwa saya menggunakan adiljava
, bukanjavac
readlink
dan memperbarui / memutakhirkan solusi yang kompatibel, bahkan ini adalah utas yang sudah berumur 5 tahun. Saya hanya merekomendasikan untuk tidak mengedit / etc / profile, tetapi menempatkan ekspor Anda di dalam file khusus, misalnya/etc/profile.d/java_environment.sh
, mungkin Anda haruschmod +x java_environment.sh
dan reboot.dirname
solusi kikuk saya . Jika Anda seperti saya dan ingin memahami apa yang terjadi di sini, ini adalah penggantian sederhana teks yang cocok dari input dengan string kosong. Karakter "default" untuk penggantian adalah/
, tetapi selama Anda konsisten, Anda dapat mengganti/
dengan apa saja. Dalam hal ini adalah titik dua yang kami gunakan/
untuk pemisah jalur.Anda dapat menggunakan / etc / profile atau file yang lebih baik seperti /etc/profile.d/jdk_home.sh
Anda harus ingat bahwa file ini hanya dimuat dengan shell login baru .. Jadi setelah bash -l atau sesi gnome baru dan tidak berubah dengan versi Java yang baru.
sumber
/etc/profile.d/*.sh
sehingga file Anda perlu dipanggiljdk_home.sh
agar dapat bersumber/etc/profile.d/jdk_home.sh
adalah jawaban yang jauh lebih bersih, setidaknya untuk Ubuntu ,/etc/profile
sudah dipenuhi dengan banyak logika. Tampaknya tidak bijaksana untuk menambahkan lebih banyak ke dalamnya ...Tidak ada jawaban lain yang "menempel" bagi saya di RHEL 7, bahkan pengaturan
JAVA_HOME
danPATH
langsung/etc/profile
atau~/.bash_profile
tidak akan berhasil. Setiap kali saya mencoba memeriksa apakahJAVA_HOME
sudah diatur, akan muncul kosong:Yang harus saya lakukan adalah membuat skrip di
/etc/profile.d/jdk_home.sh
:Saya awalnya mengabaikan baris pertama (itu
#!/bin/sh
), dan itu tidak akan berhasil tanpanya.Sekarang sudah berfungsi:
sumber
Sangat mudah untuk mengatur jalur di Linux. Lakukan sebagai berikut:
Langkah-1 Buka terminal dan ketik
sudo gedit .bashrc
Langkah-2 Ini akan menanyakan kata sandi Anda. Setelah mengetik kata sandi, itu akan membuka file bash. Lalu pergi ke ujung dan ketik di bawah ini
langkah-3
langkah-4 Kemudian simpan file dan keluar dari file
Di atas adalah untuk satu pengguna. Untuk semua pengguna, Anda harus mengikuti langkah-langkah di bawah ini
Langkah 1
gedit /etc/profile
Langkah 2
export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/"
Langkah-3
export PATH=$PATH:$JAVA_HOME/bin
Semoga ini membantu. Terima kasih!
sumber
Melakukan apa yang dilakukan Oracle (sebagai mantan Karyawan Sun, saya tidak terbiasa dengan hal itu)
ln -s latestJavaRelease / usr / java / default
Di mana latestJavaRelease adalah versi yang ingin Anda gunakan
lalu ekspor JAVA_HOME = / usr / java / default
sumber
Jawaban yang diberikan posting sebelumnya valid. Tetapi tidak ada satu jawaban pun yang lengkap sehubungan dengan:
Jadi seperti yang dinyatakan di atas buat file /etc/profile.d/custom.sh untuk perubahan khusus.
Sekarang, untuk selalu terus diperbarui dengan versi Java yang lebih baru sedang diinstal, jangan pernah meletakkan path absolut, alih-alih gunakan:
sumber
Salin path file bin yang Anda instal
buka terminal dan edit file lingkungan dengan mengetik perintah berikut,
Dalam file ini, tambahkan baris berikut (menggantikan
YOUR_PATH
dengan jalur yang baru saja disalin):Itu harus cukup untuk mengatur variabel lingkungan. Sekarang muat ulang file ini:
sekarang mengujinya dengan mengeksekusi:
sumber
/usr/lib/jvm/default-java/
Di Linux saya menambahkan baris ini ke profil ~ /.:
sumber
Langkah 1 - periksa versi java saat ini dengan "echo $ JAVA_HOME"
Langkah 2 - vim / etc / profile
Langkah 3 - Di akhir file Anda akan menemukan ekspor JAVA_HOME, kami perlu menyediakan jalur baru di sini, pastikan itu tidak relatif.
Langkah 4 - Simpan dan keluar: wq
Langkah 5 - "sumber / etc / profile /", ini akan menjalankan perubahan
Langkah 6 - Sekali lagi lakukan gema $ JAVA_HOME - perubahan akan tercermin.
sumber
1 ... Menggunakan jalan pintas
Ctlr
+Alt
+T
untuk membuka terminal2 ... Jalankan perintah di bawah ini:
3 ... (Disarankan) Mulai ulang VM / komputer Anda. Kamu bisa memakai
source /etc/source
jika tidak ingin me-restart komputer4 ... Menggunakan jalan pintas
Ctlr
+Alt
+T
untuk membuka terminal5 ... Angsuran JAVA_HOME yang terverifikasi dengan
Salinan satu-liner dari flob , kreditkan kepada mereka
sumber
sumber
Mungkin ide yang bagus untuk mencari profil apa pun yang Anda edit untuk menyimpan harus menggunakan login baru.
baik: sumber / etc / atau. / etc /
Di mana profil apa pun yang Anda edit.
sumber
Sementara kita mengatur JAVA_HOME, izinkan saya berbagi beberapa manfaat pengaturan JAVA_HOME atau variabel lingkungan lainnya:
1) Mudah untuk memutakhirkan JDK tanpa memengaruhi startup aplikasi dan file konfigurasi yang mengarah ke JAVA_HOME. Anda hanya perlu mengunduh versi baru dan pastikan JAVA_HOME Anda menunjuk ke versi Java yang baru. Ini adalah manfaat terbaik menggunakan variabel lingkungan atau tautan.
2) variabel JAVA_HOME pendek dan ringkas, bukan path lengkap ke direktori instalasi JDK.
3) Variabel JAVA_HOME adalah independensi platform yaitu jika skrip startup Anda menggunakan JAVA_HOME maka itu dapat berjalan pada Windows dan UNIX tanpa modifikasi apa pun, Anda hanya perlu mengatur JAVA_HOME pada sistem operasi masing-masing.
Baca selengkapnya: http://javarevisited.blogspot.com/2012/02/how-to-set-javahome-environment-in.html#ixzz4BWmaYIjH
sumber
Ini adalah skrip yang sangat sederhana untuk menyelesaikan masalah
Dan untuk pengujian:
sumber
Posting sebagai jawaban, karena saya tidak memiliki hak istimewa untuk berkomentar.
Tunjuk ke catatan : ikuti jawaban yang diterima yang diposting oleh "That Dave Guy".
Setelah mengatur variabel, pastikan Anda mengatur izin yang sesuai ke direktori java di mana itu diinstal.
sumber
Semua langkah operasional (menemukan java, dir induk, mengedit file, ...) satu solusi
Hasil:
Penjelasan:
1) Ayo pecahkan perintah lengkap menjadi beberapa bagian
2) Temukan jalur java dari perintah java
3) Dapatkan jalur relatif dari jalur simbolik
4) Dapatkan jalur induk
/usr/lib/jvm/java-11-openjdk-11.0.7.10-1.el8_1.x86_64/bin/java
5) Dapatkan jalur induk
/usr/lib/jvm/java-11-openjdk-11.0.7.10-1.el8_1.x86_64/bin/
sumber
Gunakan SDKMAN sdkman.io untuk beralih btw. sdk kamu.
Ini menentukan JAVA_HOME untuk Anda.
sumber
buka kafka-run-class.sh dengan sudo untuk menulis
Anda dapat menemukan kafka-run-class.sh di folder kafka Anda: kafka / bin / kafka-run-class.sh
periksa garis-garis ini
Ubah variabel JAVA di bagian lain untuk menunjuk ke executable java di java / bin Anda. seperti JAVA = "$ JAVA_HOME / java"
sumber
Di / etc / profile, jika Anda membuka itu Anda akan mengetahui bahwa itu TIDAK dianjurkan untuk menulis pada file itu. Alih-alih membuat skrip dari perintah Anda (misalkan test.sh) buka folder /etc/profile.d dan Taruh test.sh di sana. Setiap kali Anda melakukan reboot, itu akan secara otomatis dipanggil oleh / etc / profile.
sumber
Saya menggunakan garis:
ke ~ / .profile saya sehingga menggunakan basis direktori java default saat login. Ini untuk bash.
sumber