如何创建 .desktop 文件来启动 eclipse?

如何创建 .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 中设置的。

答案1

我有同样的问题。

下一个 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.桌面

我的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 选项及其值(路径)必须位于不同的行上。

更多信息:维基百科 eclipse.ini

答案2

输出确实表明它也在 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
  • 检查您的~/.profilePATH 是否正确,其中是否设置了目录。如果仅在、等java中设置了正确的路径,则可能在登录时未调用这些脚本,因此 PATH 设置不正确。此外,如果您有或您也必须检查这些。如果您提供这些文件,我们可以调查这是否是您的问题。.bashrc.zshrc~/.bash_profile~/.bash_login

如果你不能通过这种方式解决问题,你可以直接在 .desktop 文件中修改 PATHenv PATH= ...

答案3

我从声明中复制了以下块if [ -n "$BASH_VERSION" ]; then

if [ -f "$HOME/.bashrc_" ]; then
    . "$HOME/.bashrc"
fi

我也尝试过不使用 if 语句:

. "$HOME/.bashrc"

但 Eclipse 在两种情况下都会失败并显示相同的错误消息。显然HOME在 lightdm 运行时未设置~/.profile

明确设置路径是~/.profile可行的,但我想将我的 PATH 和其他 Bash 功能(别名、函数)保留在同一个文件中。

解决方案是在 eclipse.desktop 中设置行PATHExec=env PATH=$PATH:...但是,我尝试过的所有方法都无法从桌面图标启动 IntelliJ。

鉴于您正在使用 Unity 重塑 Linux GUI 体验,也许是时候抛弃一系列容易出错的脚本,而使用一些不容易出错且更易于使用的脚本了。脚本仍然必须用于 bash shell,但 Unity 桌面可以独立于它们。

答案4

我有一个非常简单的方法。

打开 Gedit 或文本编辑器。添加:

[Desktop Entry]
Exec=/home/testrule/eclipse/eclipse
Icon=/home/testrule/eclipse/icon.xpm
Type=Application

在桌面另存为eclipse.desktop

右键单击文件eclipse.desktop> 单击属性 > 单击权限选项卡 >> 单击复选框执行

相关内容