Bagaimana cara memperbaiki kesalahan maven Variabel lingkungan JAVA_HOME tidak didefinisikan dengan benar?

Isu:

Saya mendapatkan kesalahan Maven "Variabel lingkungan JAVA_HOME tidak didefinisikan dengan benar &" ketika saya menjalankan eksekusi batch Inno setup. Namun, saya dapat menjalankan dengan sukses di luar Inno Setup (misalnya Command line, Batch file, Vbs). Saya tidak mengerti untuk mengidentifikasi masalahnya.

Inno Setup Memanggil Prompt:

C:\>mvn -version
The JAVA_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: JAVA_HOME should point to a JDK not a JRE

Perintah Perintah Biasa:

C:\>mvn -version
C:\
Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-04T01:09:06+05:30)
Maven home: C:\Program Files\apache-maven-3.5.0\bin\..
Java version: 1.8.0_131, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.8.0_131\jre
Default locale: en_US, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"

Perintah Maven dari InnoSetup:

[Files]
Source: "C:\@Setup\MavenInstaller.bat"; DestDir: "{tmp}"; Flags: ignoreversion
[Run]
Filename: "{cmd}"; Parameters: "/C ""{tmp}\MavenInstaller.bat"""

Perintah Maven dari File Batch:

mvn archetype:generate -DgroupId=com.mycompany.mycomponent-DartifactId=%APPLICATION_NAME% -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

Pengaturan JAVA_HOME

Periksa apakah Java 1.8 sudah terinstal atau belum. Jika tidak diinstal, Instal yang sama dan atur JAVA HOME sebagai berikut.

SETX JAVA_HOME "C:\Program Files\Java\jdk1.8.0_131"
SETX -m JAVA_HOME "C:\Program Files\Java\jdk1.8.0_131"
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path /t REG_SZ /d "%path%;C:\Program Files\Java\jdk1.8.0_131\bin;" /f

Terima kasih banyak.

JDK saya terinstal di C:\Program Files\Java\jdk1.8.0_144\.
Saya telah mengatur JAVA_HOME= C:\Program Files\Java\jdk1.8.0_144\, dan saya mendapatkan kesalahan ini:

The JAVA_HOME environment variable is not defined correctly
This environment variable is needed to run this program
NB: JAVA_HOME should point to a JDK not a JRE

Ketika saya mengubah JAVA_HOME ke C:\Program Files\Java\jdk1.8.0_144\jre, masalahnya telah diperbaiki.
Saya tidak yakin bagaimana caranya.

Komentar (1)
Larutan

Perintah SETX tidak memodifikasi lingkungan saat ini.

Jika Anda menjalankan file batch berikut ini:

setx AAA aaa
echo AAA=%AAA%

Ini akan mencetak

AAA=

Jadi file batch Anda salah. Anda harus menggunakan set:

set AAA=aaa

Lihat Apa perbedaan antara SETX dan SET dalam variabel lingkungan di Windows.

Komentar (1)

Saya telah menghapus variabel JAVA_HOME dan hanya menyimpan variabel path dan classpath dengan mengarahkannya ke jdk dan jre. Ini bekerja untuk saya.

Komentar (0)