Environment-Variables

我的 Java 環境變數似乎一團糟,如何在不重新安裝的情況下重新啟動?

  • February 10, 2019

我正在嘗試Janusgraph開發OpenSuse Leap 42.3,但遇到了許多問題。

我的理解是JanusGraph呼叫其他 Java 依賴項,包括gremlin& cassandra。我已經從我的帳戶和 root 嘗試過,但我從後續閱讀中了解到,janusgraph.sh從 root 執行要麼已被棄用,要麼是不可能的。

我認為我的 Java 環境變數是錯誤的,並且執行 env 顯示了一堆與 java 相關的變數,我不知道它們是如何或在哪裡生成或聲明的。我想以它們在所有帳戶中通用的方式進行設置,我認為這可能以某種方式使用 /etc/environment

這是env | grep J+ 其他手動提取的輸出(以下所有內容都是從我的普通 bash 帳戶執行的,而不是 root )

JRE_HOME=/usr/lib64/jvm/jre-1.8.0-openjdk/jre/bin/java
JAVA_BINDIR=/usr/lib64/jvm/java/bin
JAVA_HOME=/usr/bin/
JDK_HOME=/usr/lib64/jvm/java
JAVA_ROOT=/usr/lib64/jvm/java
CASSANDRA_HOME=/opt/apache-cassandra-3.11.3/bin/
PATH=/home/me/adb-fastboot/platform-tools:/home/me/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/home/me/bin:/usr/lib64/jvm/jre-1.8.0-openjdk/bin/java:/usr/lib64/jvm/jre-1.8.0-openjdk/jre/bin/java:/usr/bin/

但我認為這矛盾:

alternatives --list java
/usr/lib64/jvm/jre-1.8.0-openjdk/bin/java

我還檢查過:

java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (IcedTea 3.10.0) (build 1.8.0_191-b12 suse-30.1-x86_64)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

並找出實際位置:

readlink -f /usr/bin/java
/usr/lib64/jvm/java-1.8.0-openjdk-1.8.0/jre/bin/java

whereis java
java: /usr/bin/java /usr/lib64/java /etc/java /usr/share/java /usr/share/man/man1/java.1.gz

你的PATH變數搞砸了,我不知道你為什麼需要JRE_HOME, JAVA_BINDIR, JDK_HOMEJAVA_ROOT. 通常,您只需要變數和變數java中的二進製文件。但也許您的設置需要其中一些,所以我建議您保留它們,直到您的環境按需要工作。PATH``JAVA_HOME

請允許我剖析您的PATH,刪除帶有評論的條目:

PATH=/home/me/adb-fastboot/platform-tools:
/home/me/bin:
/usr/local/bin:
/usr/bin:
/bin:
/usr/bin/X11:
/usr/games:
/home/me/bin: # remove, already defined above
/usr/lib64/jvm/jre-1.8.0-openjdk/bin/java: # remove, java is already in /usr/bin
/usr/lib64/jvm/jre-1.8.0-openjdk/jre/bin/java: # remove, java is already in /usr/bin
/usr/bin/ # remove, already defined above

您的新路徑是:

PATH=/home/me/adb-fastboot/platform-tools:/home/me/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games

JAVA_HOME/JRE_HOME 應該是:

JAVA_HOME=/usr/lib64/jvm/jre-1.8.0-openjdk
JRE_HOME=$JAVA_HOME/jre

**編輯:**您的變數可能在您的 ~/.bashrc 或 ~/.profile 中導出。在找到它們的位置進行更改(export在變數名之前)。

引用自:https://unix.stackexchange.com/questions/499809