当我创建一个 .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
- 检查您的
~/.profile
PATH 是否正确,其中是否设置了目录。如果仅在、等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 中设置行PATH
。Exec=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
> 单击属性 > 单击权限选项卡 >> 单击复选框执行