Saat mencoba menjalankan gradle, saya mendapatkan kesalahan berikut:
# gradle
ERROR: JAVA_HOME is set to an invalid directory: /usr/lib/jvm/default-java
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.
Namun, ketika saya memeriksa variabel JAVA_HOME saya mendapatkan:
# echo $JAVA_HOME
/usr/lib/jvm/java-7-oracle
JAVA_HOME saya didefinisikan dalam .bashrc dan saya telah memeriksa ulang bahwa itu ditetapkan sebagai sumber.
Menjalankan java -version
juga mengonfirmasi bahwa JAVA_HOME diatur dengan benar dan berada di PATH.
# java -version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)
Saya juga telah memeriksa /usr/bin/java
symlink /etc/alternatives/java
yang pada gilirannya symlinks dengan benar/usr/lib/jvm/java-7-oracle/jre/bin/java
Selain itu saya telah memeriksa bahwa tidak ada definisi JAVA_HOME duplikat di .bash_profile
atau /etc/profile
.
Jadi pertanyaan saya adalah bagaimana / mengapa menemukan Gradle /usr/lib/jvm/default-java
, dan yang lebih penting bagaimana saya mengarahkannya ke direktori yang benar?
Program lain yang membutuhkan JDK berfungsi dengan baik, jadi saya pikir ini masalah Gradle. Saya juga mencoba menginstal ulang Gradle yang tidak ada bedanya.
Saya menjalankan 64bit Xubuntu (basis Ubuntu 13.10)
sumber
/usr/lib/jvm/default-java
direktori atau symlink? Dan bagaimana Anda menginstal Gradle?/usr/lib/jvm/default-java
dir. Diinstal dengan apt (apt-get install gradle)JAVA_HOME
disetel. JikaJAVA_HOME
diatur, skrip digunakan$JAVA_HOME/bin/java
untuk menjalankan Gradle. Kalau tidak, ia menggunakanjava
(yaitujava
harus diPATH
). Mungkin paket apt (pihak ketiga) menggunakan skrip awal yang dimodifikasi.usr/lib/jvm/defult-java
. Terima kasih atas bantuannyasource ~/.bashrc
, atau reboot mesin Anda setelah mengatur JAVA_HOME?Jawaban:
Ternyata biner Gradle tertentu yang saya unduh dari repositori Ubuntu 13.10 sendiri mencoba untuk mengekspor JAVA_HOME. Terima kasih kepada Lucas untuk menyarankan ini.
/usr/bin/gradle
baris 70:Mengomentari baris ini menyelesaikan masalah, dan Gradle menemukan jalur yang benar ke biner Java.
Jika Anda hanya mengunduh biner dari situs web mereka, ia tidak memiliki masalah ini. Ini masalah dengan versi repo Ubuntu. Tampaknya juga ada beberapa masalah lain dengan versi 13.10.
sumber
tambahkan tautan simbolis
sumber
Solusinya adalah membuat JAVA_HOME == dir di atas bin tempat javac hidup
OK jadi akhirnya menemukan tempat sampah di atas javac yang sebenarnya jadi lakukan ini
di atas dapat disederhanakan dan digeneralisasikan ke
sumber
Bagi saya kesalahan ini adalah karena alasan Gradle diinstal sebagai sudo dan saya mencoba sebagai pengguna default untuk menjalankan Gradle.
Mencoba:
atau
sumber
Coba pasang versi terbaru
gradle
,Jika kita menginstal dari repo ubuntu, itu akan menginstal versi lama, (bagi saya itu gradle 1.4). Dalam versi yang lebih lama, ini menetapkan java home dari gradle sebagai
export JAVA_HOME=/usr/lib/jvm/default-java
. Versi terbaru tidak memiliki masalah ini.sumber
Apakah Anda
export
AndaJAVA_HOME
? Tanpa ekspor, pengaturan tidak akan disebarkan ke perintah yang dimulai di dalam shell itu. Juga,java -version
tidak menggunakanJAVA_HOME
, melainkan menggunakan yang pertamajava
ditemukan di jalur Anda. Pastikan.bashrc
penampilan Anda seperti ini:sumber
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
(sintaks yang sedikit berbeda tapi saya menganggap itu sama)gradle
perintah itu sendiri yang mengatur variabel itu? Mungkin orang yang menginstalgradle
membuat skrip pembungkus yang mengatur variabel lingkungan sebelum memulai aplikasi. Saat menggunakan kucing jantan, bukan hal yang aneh bagicatalina.sh
(yang merupakan skrip startup) untuk memanggil asetenv.sh
untuk mengatur variabel lingkungan yang mungkin termasukJAVA_HOME
Saya menghadapi masalah ini ketika saya menjalankan perintah berikut di Ubuntu:
Untuk mengatasi masalah ini, saya melakukan langkah-langkah berikut:
Tambahkan JAVA_HOME ke / etc / environment:
Menambahkan:
Setelah menyimpan, bacalah:
Akhirnya, Anda dapat menjalankan perintah build.
sumber
Saya memiliki masalah yang sama, tetapi saya tidak menemukan perintah ekspor pada baris 70 dalam file gradle untuk versi terbaru 2.13, tetapi saya mengerti kesalahan konyol di sana, yaitu mengikuti,
Jika Anda tidak menemukan baris 70 dengan perintah ekspor dalam file gradle di folder gradle Anda / bin /, maka periksa ~ / .bashrc Anda, jika Anda menemukan
export JAVA_HOME==/usr/lib/jvm/java-7-openjdk-amd64/bin/java
, kemudian hapus/bin/java
dari baris ini, sepertiJAVA_HOME==/usr/lib/jvm/java-7-openjdk-amd64
, dan itu di jalur >>> sebagai gantinya iniexport PATH=$PATH:$HOME/bin:JAVA_HOME/
, akan menjadiexport PATH=$PATH:$HOME/bin:JAVA_HOME/bin/java
. Kemudian jalankansource ~/.bashrc
.Alasannya adalah, jika Anda memeriksa file gradle Anda, Anda akan menemukan di baris 70 (jika tidak ada perintah ekspor) atau di baris 75,
Itu terjadi dalam kasus saya.
sumber
Di Ubuntu saya, saya sakit kepala selama 2 hari karena masalah ini.
Langkah 1. Ketik terminal
whereis java
maka akan muncul tampilan seperti iniLangkah 2. Perhatikan jalur:
/usr/lib/jvm/java-8-openjdk-amd64/bin/java
mengecualikan
bin/java
JAVA_HOME Anda =
/usr/lib/jvm/java-8-openjdk-amd64
sumber
Bagi saya set eksplisit pada bagian argumen konfigurasi alat eksternal di Eclipse adalah masalahnya.
sumber
Anda juga dapat membuka folder bin di dalam folder instalasi gradle Anda dan memperbaiki parameter JAVA_HOME dalam file gradle.bat. Dalam kasus saya, JAVA_HOME saya disetel ke c: \ Program files \ java \ bin JAVA_HOME di gradle.bat disetel ke% JAVA_HOME% \ bin \ java.exe.
Saya memperbaiki JAVA_HOME di gradle.bat dan berhasil.
Terima kasih!!!
sumber
Buat tautan simbolis ke direktori default-java.
Anda dapat menemukan direktori java Anda dengan
sumber
Sebelum menjalankan perintah, coba masukkan:
Di
path_to_java_home
mana folder tempat Andabin/java
berada.Jika java diinstal dengan benar, Anda dapat menemukan lokasi itu, dengan menggunakan perintah:
Jangan lupa untuk menghapus
bin/java
dari ujung jalan sambil meletakkannyaJAVA_HOME
sumber
Saya punya masalah dengan ini juga. Dikatakan direktori yang salah ketika itu benar. Jadi saya baru saja membuat variabel lokal dengan nama JAVA_HOME menghilangkan final / bin / java. Ini bekerja dengan baik untukku.
sumber
Jika lingkungan GRADLE_HOME dan JAVA_HOME Anda diatur dengan benar maka periksa direktori JDK Anda dan pastikan Anda memiliki file java.exe di bawah jalur di bawah ini.
Seperti kesalahan yang disebutkan dalam file gradle.bat
Itu tidak dapat menemukan instalasi java Anda. Jadi temukan dan atur
di bawah
%JAVA_HOME%/bin
jika semuanya benar.Ini berfungsi untuk saya (akun saya dinonaktifkan oleh klien dan adminnya telah menghapus java.exe dari direktori saya.)
sumber
Dalam dockercontainer saya (minimal masalah tidak menemukan java) adalah, bahwa "yang" tidak diinstal. Comipling proyek menggunakan gradlew yang digunakan yang dalam ./gradlew untuk menemukan Instalasi java yang memecahkan masalah.
sumber
[Windows] Seperti yang sudah dikatakan, sepertinya .bat -file mencoba mencari java.exe dari
%JAVA_HOME%/bin/java.exe
sehingga tidak ditemukan karenabin
diulang dua kali di jalur. Hapus ekstra itu/bin
dari gradle.bat.sumber
Menambahkan baris di bawah ini di build.gradle memecahkan masalah saya.
sumber