如何创建.desktop文件来启动eclipse?
当我创建一个.desktop文件来启动eclipse(支持JDK 1.8的最新版本)时,我收到以下错误:
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
为什么它试图在eclipse二进制文件所在的目录下找到JRE?
我可以从命令行启动Eclipse,我可以将它固定到启动器上,它可以工作。 为什么.desktop文件对它应该做的事情如此混淆?
这是我的.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;
我遇到的问题不是上面链接的问题中提到的问题 。 我的问题是因为我的JDK的PATH是在我的.bashrc中设置的。
我有同样的问题。
下一个eclipse.desktop文件适用于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
我没有修改eclipse.ini
另一个解决方案是修改eclipse.ini文件而不修改你的eclipse.desktop
我的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
-vm选项及其值(路径)必须位于不同的行上。
更多信息: Wiki eclipse.ini
输出确实说它也在PATH中搜索过:
No Java virtual machine was found after searching the following locations: ... java in your current PATH
你说你可以从一个终端启动eclipse
:在这种情况下,我会说你的java
被安装到一个非标准的目录,它被一个终端启动脚本(bashrc,zshrc等)添加到你的PATH中,但它是登录时未添加到您的会话中。 因此,当您在终端会话中时,您的PATH与调用.desktop文件时使用的PATH不同。
要解决此问题:
- 要查看
java
的安装位置:which java
- 如果在其中设置了具有
java
目录的正确PATH,请检查~/.profile
。 如果仅在.bashrc
,.zshrc
等中设置了正确的路径,则可能在登录时未调用这些脚本,因此未正确设置PATH。 此外,如果您有~/.bash_profile
或~/.bash_login
您也必须检查它们。 如果您提供这些文件,我们可以查看这是否是您的问题。
如果你不能这样解决,你总是可以使用env PATH= ...
在.desktop文件中直接修改env PATH= ...
我已经在if [ -n "$BASH_VERSION" ]; then
复制了以下块if [ -n "$BASH_VERSION" ]; then
声明:
if [ -f "$HOME/.bashrc_" ]; then . "$HOME/.bashrc" fi
我也试过没有if语句:
. "$HOME/.bashrc"
但Eclipse在两种情况下都失败并显示相同的错误消息。 显然,当lightdm运行~/.profile
时,不会设置HOME
。
在~/.profile
明确设置路径有效,但我希望将PATH和其他Bashfunction(别名,函数)保存在同一个文件中。
解决方案是在eclipse.desktop中的Exec=env PATH=$PATH:...
行上设置PATH
。 但是,我没有尝试从桌面图标启动IntelliJ。
鉴于您正在重新发明使用Unity的Linux GUI体验,可能是时候将容易出错的一系列脚本放在后面,并使用不易出错且易于使用的东西。 脚本仍然必须存在于bash shell中,但Unity桌面可以独立于它们。
我有一个非常简单的方法。
打开Gedit或文本编辑器。 加:
[Desktop Entry] Exec=/home/testrule/eclipse/eclipse Icon=/home/testrule/eclipse/icon.xpm Type=Application
在桌面上保存为eclipse.desktop
。
右键单击eclipse.desktop
文件>单击属性>单击权限选项卡>>单击执行复选框