Как правильно установить переменные PATH, HOME, JAVA_HOME для работы с maven после установки Java-JDK?
Я посетил веб-страницу по адресу https://help.ubuntu.com/community/EnvironmentVariables и узнал об установке переменных среды и локальных пользовательских переменных и получил довольно четкую картину. Но я до сих пор не могу понять, как установить различные переменные уровня системы и пользователя, такие как PATH, JAVA_HOME, HOME, для maven, работающего с java. Также существуют разные более новые версии Java с пакетами JDK, JRE, и старые версии, похоже, работают, хотя во многих случаях. Так что это действительно озадачивает, когда установлены все версии JAVA JDK и JRE. На моей машине с Ubuntu (в виртуальной машине) я не могу использовать maven с java, так как получаю следующие предупреждения и ошибки при запуске сценария bash, содержащего команду#!/bin/bash mvn clean install:
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$1 (file:/usr/share/maven/lib/guice.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
[INFO] Scanning for projects...
[INFO]
[INFO] --------------< com.multichainjavaapi:MultiChainJavaAPI >---------------
[INFO] Building MultiChainJavaAPI 0.4.17-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ MultiChainJavaAPI ---
[INFO] Deleting /home/kamran/Downloads/tmp/API Demo for Multichain/Multichain API Demo for Students/target
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ MultiChainJavaAPI ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/kamran/Downloads/tmp/API Demo for Multichain/Multichain API Demo for Students/src/main/resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ MultiChainJavaAPI ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 89 source files to /home/kamran/Downloads/tmp/API Demo for Multichain/Multichain API Demo for Students/target/classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /home/kamran/Downloads/tmp/API Demo for Multichain/Multichain API Demo for Students/src/main/java/multichain/MC/src/module-info.java:[8,1] modules are not supported in -source 8
(use -source 9 or higher to enable modules)
[INFO] 1 error
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 6.925 s
[INFO] Finished at: 2023-01-27T21:11:15+05:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project MultiChainJavaAPI: Compilation failure
[ERROR] /home/kamran/Downloads/tmp/API Demo for Multichain/Multichain API Demo for Students/src/main/java/multichain/MC/src/module-info.java:[8,1] modules are not supported in -source 8
[ERROR] (use -source 9 or higher to enable modules)
[ERROR]
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
У меня есть IDE eclipse и netbeans, а также следующее на моем ubuntu, но я не могу загрузить Java API проекта с указанными выше ошибками:
sudo which java
/usr/bin/java
sudo echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/>:/snap/bin
sudo mvn -version
Apache Maven 3.6.3
Maven home: /usr/share/maven
Java version: 11.0.17, vendor: Ubuntu, runtime: /usr/lib/jvm/java-11-openjdk-amd64
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.15.0-58-generic", arch: "amd64", family: "unix"
sudo echo $JAVA_HOME
/usr/lib/jvm/java-1.11.0-openjdk-amd64
sudo java -version
openjdk version "11.0.17" 2022-10-18
OpenJDK Runtime Environment (build 11.0.17+8-post-Ubuntu-1ubuntu220.04)
OpenJDK 64-Bit Server VM (build 11.0.17+8-post-Ubuntu-1ubuntu220.04, mixed mode, sharing)
sudo javac -version
javac 11.0.17
sudo gedit /etc/profile.d/19.0.2.sh
экспортировать J2SDKDIR=/usr/lib/jvm/java-19.0.2
экспорт J2REDIR=/usr/lib/jvm/java-19.0.2
экспорт ПУТЬ=$ПУТЬ
экспорт JAVA_HOME=/usr/lib/jvm/java-19.0.2
экспорт DERBY_HOME=/usr/lib/jvm/java-19.0.2/db
Где я делаю неправильно?
1 ответ
Твойsudo echo $PATHвывод говорит, что $JAVA_HOME/bin не был добавлен в PATH. Правильная последовательность команд для установки JAVA_HOME должна быть следующей:
JAVA_HOME=/usr/lib/jvm/java-19.0.2-openjdk
export JAVA_HOME
PATH=$PATH:$JAVA_HOME/bin
export PATH