
Quando crio um arquivo .desktop para iniciar o Eclipse (compilação mais recente com suporte a 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 onde está o binário do Eclipse?
Posso iniciar o Eclipse a partir da linha de comando e fixá-lo no inicializador e ele funciona. Por que o arquivo .desktop está tão confuso sobre o que deveria fazer?
Aqui está 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 tendo não é o que foi perguntado ema pergunta vinculada acima como uma duplicata. Meu problema é porque meu PATH para o JDK está definido em meu .bashrc.
Responder1
Eu tive o mesmo problema.
O próximo arquivo eclipse.desktop funciona no Ubuntu 14.06 x64.
[Desktop Entry]
Encoding=UTF-8
Name=Eclipse
Comment=Eclipse IDE
Exec=/home/ivan/Eclipse/eclipse -vm /home/ivan/java/jdk1.7.0_25/bin/java
Icon=/home/ivan/Eclipse/icon.xpm
Categories=Application;Development;Java;IDE
Type=Application
Terminal=0
Eu não modifiquei oeclipse.ini
Outra solução é modificar oeclipse.iniarquivo sem modificar seu eclipse.desktop
Meu eclipse.ini:
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20140116-2212
-product
org.eclipse.epp.package.standard.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vm
/home/ivan/java/jdk1.7.0_25/bin/java
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.6
-XX:MaxPermSize=256m
-Xms40m
-Xmx512m
A opção -vm e seu valor (o caminho) devem estar em linhas separadas.
Mais informações:Wiki eclipse.ini
Responder2
A saída diz que também pesquisou no PATH:
No Java virtual machine was found after searching the following locations:
...
java in your current PATH
Você disse que pode iniciar eclipse
a partir de um terminal: neste caso, eu diria que o seu java
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ê fizer login. Portanto, quando você está em uma sessão de terminal, seu PATH é diferente daquele usado quando o arquivo .desktop é invocado.
Para solucionar este caso:
- Para ver onde
java
está instalado:which java
- Verifique
~/.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 invocados no login, portanto o PATH não está definido corretamente. Além disso, se você tiver~/.bash_profile
ou~/.bash_login
precisar verificar isso também. Se você fornecer esses arquivos, poderemos verificar se esse é o seu problema.
Se você não conseguir resolver desta forma, você pode modificar o PATH diretamente no arquivo .desktop comenv PATH= ...
Responder3
Copiei o seguinte bloco da if [ -n "$BASH_VERSION" ]; then
instrução:
if [ -f "$HOME/.bashrc_" ]; then
. "$HOME/.bashrc"
fi
Eu também tentei sem a instrução if:
. "$HOME/.bashrc"
mas o Eclipse falha com a mesma mensagem de erro em ambos os 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 o PATH
na Exec=env PATH=$PATH:...
linha em eclipse.desktop. No entanto, nada do que tentei funciona para iniciar o IntelliJ a partir de um ícone na área de trabalho.
Dado que 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 que seja menos propenso a erros e mais fácil de usar. Os scripts ainda teriam que estar lá para os shells bash, mas a área de trabalho do Unity poderia ser independente deles.
Responder4
Eu tenho um método muito simples.
Abra o Gedit ou Editor de Texto. Adicionar:
[Desktop Entry]
Exec=/home/testrule/eclipse/eclipse
Icon=/home/testrule/eclipse/icon.xpm
Type=Application
Salve na área de trabalho como eclipse.desktop
.
Clique com o botão direito no eclipse.desktop
arquivo > clique em propriedades > clique na guia Permissões >> Clique nocaixa de seleçãode Executar