Quando crio um arquivo .desktop para iniciar o eclipse (última compilação com suporte ao JDK 1.8), recebo o seguinte erro:
A Java Runtime Environment (JRE) or Java Development Kit (JDK)
must be available in order to run Eclipse. No Java virtual machine
was found after searching the following locations:
/home/dean/bin/eclipse-standard-luna-M5-linux-gtk-x86_64/eclipse/jre/bin/java
java in your current PATH
Por que ele tenta encontrar o JRE no diretório em que o binário do eclipse está?
Posso iniciar o Eclipse a partir da linha de comando e fixá-lo no iniciador e ele funciona. Por que o arquivo .desktop está tão confuso sobre o que deve fazer?
Aqui está o meu arquivo .desktop:
[Desktop Entry]
Version=1.0
Name=Eclipse JDK 1.8
Comment=Eclipse
Exec=/home/dean/bin/eclipse-standard-luna-M5-linux-gtk-x86_64/eclipse/eclipse
Icon=/home/dean/bin/eclipse-standard-luna-M5-linux-gtk-x86_64/eclipse/icon.xpm
Terminal=false
Type=Application
Categories=Utility;Application;
O problema que estou enfrentando não é o que foi perguntado na pergunta vinculada acima como duplice . Meu problema é porque meu PATH para o JDK está definido no meu .bashrc.
Respostas:
Eu tive o mesmo problema.
O próximo arquivo eclipse.desktop funciona no Ubuntu 14.06 x64.
Não modifiquei o eclipse.ini
Outra solução é modificar o arquivo eclipse.ini sem modificar o seu eclipse.desktop
Meu eclipse.ini:
A opção -vm e seu valor (o caminho) devem estar em linhas separadas.
Mais informações: Wiki eclipse.ini
fonte
A saída diz que procurou também no PATH:
Você disse que pode iniciar a
eclipse
partir de um terminal: Nesse caso, eu diria que o seujava
está instalado em um diretório não padrão, que é adicionado ao seu PATH por um script de inicialização do terminal (bashrc, zshrc, etc.), mas não é adicionado à sua sessão quando você faz o login. Portanto, quando você está em uma sessão de terminal, seu PATH é diferente daquele usado quando o arquivo .desktop é chamado.Para solucionar esse caso:
java
está instalado:which java
~/.profile
se o PATH correto com ojava
diretório está definido nele. Se o caminho correto estiver definido apenas em.bashrc
,.zshrc
etc., é possível que esses scripts não sejam chamados no login, portanto, o PATH não está definido corretamente. Além disso, se você tiver~/.bash_profile
ou~/.bash_login
tiver que verificar também. Se você fornecer esses arquivos, podemos verificar se esse é o seu problema.Se você não conseguir resolvê-lo dessa maneira, sempre poderá modificar o PATH diretamente no arquivo .desktop com
env PATH= ...
fonte
Exec=env PATH=/home/dean/bin/jdk1.8.0/bin:$PATH /home/dean/bin/eclipse-standard-luna-M5-linux-gtk-x86_64/eclipse/eclipse
Os documentos do arquivo .desktop não ajudaram.Exec=env PATH= ...
o que eu quis dizer na minha última linha. Normalmente você gostaria de configurar o PATH no .profile, não no .bashrc. O arquivo .profile é analisado pelo shell de logon, portanto, ele configurará o PATH corretamente quando você efetuar o logon e, portanto, não haverá necessidade daenv
solução alternativa. Nas fontes .profile do Debian / Ubuntu .bashrc, isso não deve ser um problema, mas talvez o seu .profile não esteja fazendo isso, verifique isso. Ou você tem um arquivo .bash_profile ou .bash_login que substitui as configurações de .profile.Copiei o seguinte bloco de dentro da
if [ -n "$BASH_VERSION" ]; then
instrução:Eu também tentei sem a instrução if:
mas o Eclipse falha com a mesma mensagem de erro nos dois casos. Aparentemente,
HOME
não está definido quando o lightdm é executado~/.profile
.Definir explicitamente o caminho
~/.profile
funciona, mas quero manter meu PATH e meus outros recursos do Bash (aliases, funções) no mesmo arquivo.A solução é definir
PATH
aExec=env PATH=$PATH:...
linha em eclipse.desktop. Nada que eu tentei funciona para iniciar o IntelliJ a partir de um ícone na área de trabalho.Como você está reinventando a experiência da GUI do Linux com o Unity, talvez seja hora de deixar para trás a série de scripts propensos a erros e usar algo menos propenso a erros e mais fácil de usar. Os scripts ainda precisariam estar lá para os shells do bash, mas a área de trabalho do Unity poderia ser independente deles.
fonte
Eu tenho um método muito simples.
Abra o Gedit ou o Editor de texto. Adicionar:
Salve na área de trabalho como
eclipse.desktop
.Clique com o
eclipse.desktop
botão direito do mouse no arquivo> clique em propriedades> clique na guia Permissões >> Clique na caixa de seleção Executarfonte