Java_home Linux 終端機中沒有這樣的檔案或目錄

Java_home Linux 終端機中沒有這樣的檔案或目錄

你好我有一個問題我的linux終端顯示bash:java_home:沒有這樣的檔案或目錄,當我輸入echo $ JAVA_HOME時我得到/ usr / lib / jvm / java-8-openjdk-amd64並且echo $ PATH顯示/ usr / lib /jvm/java-8-openjdk-amd64/bin:/usr/lib/jvm/java-8-openjdk-amd64/bin:/usr/local/sbin:/usr/local/bin:/usr /sbin:/ usr/bin:/sbin:/bin:/usr/games:/usr/local/games。當我編寫 sudo apt-get install 時,我得到 JAVA_HOME:not find 我找不到問題,我正在使用 kubuntu,下面您可以在我的主目錄中看到我的終端和 .profile 檔案。也許有人知道如何解決它。先感謝您。

在此輸入影像描述

在此輸入影像描述

答案1

關鍵的錯誤訊息是:

/usr/sbin/update-info-dir: 2: /etc/environment: JAVA_HOME: not found

這表示錯誤訊息來自/usr/sbin/update-info-dir,這是一個可以作為軟體包安裝/刪除操作的一部分執行的腳本。它正在讀取(獲取)/etc/environment文件並在其中遇到錯誤。

/etc/environment應該只包含 POSIX-shell 風格的環境變數賦值,即

VARIABLE_NAME=value

必須具備等號之前或之後沒有空格:如果有空格,變數名稱將被解釋為 shell 命令,並且 shell 將嘗試執行它。

我猜你的/etc/environment文件可能包含類似的內容

JAVA_HOME = /usr/lib/jvm/java-8-openjdk-amd64

$JAVA_HOME因此,讀取檔案的 shell不會將路徑名指派給環境變量,而是將其解釋為要執行的 shell 命令。它將嘗試執行一個JAVA_HOME帶有兩個參數=和 的字面命名命令/usr/lib/jvm/java-8-openjdk-amd64。由於名為的命令JAVA_HOME不存在,這將導致錯誤訊息。

編輯/etc/environment檔案並刪除環境變數分配中等號之前/之後的所有空格。

答案2

sudo 不會維護您的環境變數。嘗試

sudo JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 apt-get ...

如果您的 sudo 配置不允許這樣做,請嘗試sudo -i按照JAVA_HOME=... apt-get...上面的方法操作

相關內容