Я пытаюсь создать файл jar
, который включает MySQL driver
для JDBC
.Пока у меня есть очень простой build.gradle
файл, который использует плагин shadowJar
для создания этого jar
файла.
Проблема в том, что при запуске чего-либо, связанного с Gradle, я получаю эту ошибку:
ERROR: JAVA_HOME is set to an invalid directory: /usr/lib/jvm/jdk-11.0.1/bin/java
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.
При попытке найти Java с $ which java
я получаю
/usr/bin/java
, а с $ ls -la /usr/bin | grep -i javaj
я получаю
lrwxrwxrwx 1 root root 22 Sep 21 11:32 java -> /etc/alternatives/java
lrwxrwxrwx 1 root root 29 Nov 5 21:12 java2groovy -> /etc/alternatives/java2groovy
lrwxrwxrwx 1 root root 23 Nov 5 20:33 javac -> /etc/alternatives/javac
lrwxrwxrwx 1 root root 25 Nov 5 20:33 javadoc -> /etc/alternatives/javadoc
lrwxrwxrwx 1 root root 23 Nov 5 20:33 javah -> /etc/alternatives/javah
lrwxrwxrwx 1 root root 23 Nov 5 20:33 javap -> /etc/alternatives/javap
Пока что ничего из этой информациибыло полезно для меня, но я оставляю это здесь на всякий случай.
Кроме того, когда я использую $ readlink -f $(which java)
, я получаю:
/usr/lib/jvm/jdk-11.0.1/bin/java
Что мне кажется, что этосоответствующий путь, который пытается найти Gradle.
Наконец, в моем .bashrc
я поместил это в файл, чтобы установить JAVA_HOME
:
## JAVA ##
export JAVA_HOME="/usr/lib/jvm/jdk-11.0.1/bin/java"
export PATH=$PATH:/usr/lib/jvm/jdk-11.0.1/bin
Любые идеи о том, почему работает$ ./gradlew shadowJar
не сможет найти Java?
Редактировать
Согласно этот вопрос , который кажется похожим на мой вопрос, моя версия Gradle пытается установить егособственный JAVA_HOME
путь, который, как я выяснил, устанавливается на /usr/bin/java/bin/java
, который не существует.
В строках 70 - 89 есть if/else
оператор делает это 