Java_home Linux 터미널에 해당 파일이나 디렉터리가 없습니다.

Java_home Linux 터미널에 해당 파일이나 디렉터리가 없습니다.

안녕하세요. 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/environmentPOSIX 쉘 스타일 환경 변수 할당만 포함해야 합니다. 즉,

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...

관련 정보