Java_home Nenhum arquivo ou diretório no terminal Linux

Java_home Nenhum arquivo ou diretório no terminal Linux

Olá, tenho um problema, meu terminal Linux mostra bash: java_home: Esse arquivo ou diretório não existe, quando digito echo $JAVA_HOME recebo /usr/lib/jvm/java-8-openjdk-amd64 e echo $PATH mostra /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. Quando escrevo um sudo apt-get install recebo JAVA_HOME:not find Não consigo encontrar um problema, estou usando o kubuntu, abaixo você pode ver meu terminal e meu arquivo .profile em meu diretório inicial. Talvez alguém saiba como consertar isso. Agradeço antecipadamente.

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Responder1

A mensagem de erro crucial é:

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

Isso indica que a mensagem de erro vem de /usr/sbin/update-info-dir, que é um script que pode ser executado como parte das operações de instalação/remoção de pacotes. Ele está lendo (fonte) o /etc/environmentarquivo e encontrando um erro nele.

/etc/environmentdeve conter apenas atribuições de variáveis ​​de ambiente no estilo shell POSIX, ou seja

VARIABLE_NAME=value

É essencial tersem espaços antes ou depois do sinal de igual: se houver espaços, o nome da variável será interpretado como um comando shell e o shell tentará executá-lo.

Suponho que seu /etc/environmentarquivo provavelmente contenha algo como

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

portanto, em vez de atribuir o nome do caminho à variável de ambiente $JAVA_HOME, o shell que lê o arquivo irá interpretá-lo como um comando shell a ser executado. Ele tentará executar um comando nomeado literalmente JAVA_HOMEcom dois parâmetros =e /usr/lib/jvm/java-8-openjdk-amd64. Como não existe um comando nomeado JAVA_HOME, isso resultará em uma mensagem de erro.

Edite seu /etc/environmentarquivo e remova quaisquer espaços antes/depois do sinal de igual nas atribuições de variáveis ​​de ambiente.

Responder2

sudo não mantém suas variáveis ​​de ambiente. Tentar

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

Se isso não for permitido pela sua configuração do sudo, tente sudo -iseguir JAVA_HOME=... apt-get...o procedimento acima

informação relacionada