Как правильно установить переменные 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
Другие вопросы по тегам