Como crio um arquivo .desktop para iniciar o eclipse?


12

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.


A única diferença entre o meu eclipse.desktop e o dessa pergunta é que ele adiciona alguns argumentos ao iniciar o eclipse. Quando adiciono esses mesmos argumentos, recebo a mesma mensagem de erro. Os arquivos .desktop do Unity aparentemente não podem iniciar o Eclipse.
Dean Schulze

Respostas:


9

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

Não modifiquei o eclipse.ini

Outra solução é modificar o arquivo eclipse.ini sem modificar o 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


por que ele precisa do caminho completo para o icon.xpm?
Nicky De Maeyer

1
onde coloco o arquivo eclipse.desktop?
Jonathan

1

A saída diz que procurou também no PATH:

No Java virtual machine was found after searching the following locations:
...
java in your current PATH

Você disse que pode iniciar a eclipsepartir de um terminal: Nesse caso, eu diria que o seu javaestá 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:

  • Para ver onde javaestá instalado:which java
  • Verifique ~/.profilese o PATH correto com o javadiretório está definido nele. Se o caminho correto estiver definido apenas em .bashrc, .zshrcetc., é 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_profileou ~/.bash_logintiver 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= ...


Esse é exatamente o meu problema então. Defino o PATH para o JDK em .bashrc. Olhando os documentos para um arquivo .desktop, a entrada PATH parece fazer outra coisa. Existe uma maneira de definir o PATH do sistema no .desktop?
Dean Schulze

Depois de pesquisar no Google, descobri que a solução é alterar a linha Exec assim: 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.
Dean Schulze

A mesma modificação na linha Exec = ... não funciona para iniciar o IntelliJ por meio do arquivo idea.sh, no entanto.
Dean Schulze

@ DeanSchulze Sim, foi 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 da envsoluçã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.
Falconer

@ DeanSchulze Para resumir, defina seu PATH em .profile (ou .bash_profile ou .bash_login se você tiver um desses arquivos) que não esteja em .bashrc ou verifique se .bashrc é originário dos arquivos mencionados acima. Se você configurá-lo dessa maneira, seu PATH também deverá estar correto para os arquivos .desktop e não haverá necessidade de "truques".
Falconer

1

Copiei o seguinte bloco de dentro da if [ -n "$BASH_VERSION" ]; theninstruçã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 nos dois casos. Aparentemente, HOMEnão está definido quando o lightdm é executado ~/.profile.

Definir explicitamente o caminho ~/.profilefunciona, mas quero manter meu PATH e meus outros recursos do Bash (aliases, funções) no mesmo arquivo.

A solução é definir PATHa Exec=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.


1

Eu tenho um método muito simples.

Abra o Gedit ou o 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 eclipse.desktopbotão direito do mouse no arquivo> clique em propriedades> clique na guia Permissões >> Clique na caixa de seleção Executar

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.