안녕하세요. Linux 터미널에 bash가 표시되는 데 문제가 있습니다. java_home: no such file ordirectory를 입력하면 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 쉘 스타일 환경 변수 할당만 포함해야 합니다. 즉,
VARIABLE_NAME=value
당신은 가지고 있어야합니다등호 앞이나 뒤에 공백이 없습니다.: 공백이 있으면 변수 이름이 쉘 명령으로 해석되어 쉘이 이를 실행하려고 시도합니다.
귀하의 /etc/environment
파일에 다음과 같은 내용이 포함되어 있을 것 같습니다.
JAVA_HOME = /usr/lib/jvm/java-8-openjdk-amd64
$JAVA_HOME
따라서 파일을 읽는 쉘은 경로명을 환경 변수에 할당하지 않고 이를 실행할 쉘 명령으로 해석합니다. 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...