
При создании файла .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
Почему он пытается найти JRE в каталоге, где находится исполняемый файл Eclipse?
Я могу запустить 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;
Проблема, с которой я столкнулся, не в том, о чем спрашивалосьвопрос, указанный выше как дубликат. Моя проблема в том, что мой PATH к JDK установлен в моем .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.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 и его значение (путь) должны быть на разных строках.
Больше информации:Вики eclipse.ini
решение2
В выводе говорится, что поиск также выполнялся в PATH:
No Java virtual machine was found after searching the following locations:
...
java in your current PATH
Вы сказали, что можете запустить eclipse
из терминала: В этом случае я бы сказал, что ваш java
установлен в нестандартный каталог, который добавляется в ваш PATH скриптом запуска терминала (bashrc, zshrc и т. д.), но не добавляется в ваш сеанс при входе в систему. Поэтому, когда вы находитесь в сеансе терминала, ваш PATH отличается от того, который используется при вызове файла .desktop.
Чтобы устранить эту проблему:
- Чтобы увидеть, где
java
установлено:which java
- Проверьте , установлен
~/.profile
ли в нем правильный PATH сjava
каталогом. Если правильный путь установлен только в.bashrc
,.zshrc
, и т. д., то возможно, что эти скрипты не вызываются при входе в систему, поэтому PATH установлен неправильно. Также, если у вас есть~/.bash_profile
или~/.bash_login
вам нужно проверить их тоже. Если вы предоставите эти файлы, мы можем рассмотреть, является ли это вашей проблемой.
Если вы не можете решить проблему таким образом, вы всегда можете изменить PATH непосредственно в файле .desktop с помощьюenv 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 (псевдонимы, функции) в одном файле.
Решение — установить PATH
on Exec=env PATH=$PATH:...
line в eclipse.desktop. Однако, ничего из того, что я пробовал, не работает для запуска IntelliJ с иконки на рабочем столе.
Учитывая, что вы переосмысливаете опыт Linux GUI с Unity, возможно, пришло время оставить серию подверженных ошибкам скриптов позади и использовать что-то менее подверженное ошибкам и более простое в использовании. Скрипты все равно должны быть там для оболочек bash, но рабочий стол Unity может быть независимым от них.
решение4
У меня очень простой метод.
Откройте Gedit или текстовый редактор. Добавьте:
[Desktop Entry]
Exec=/home/testrule/eclipse/eclipse
Icon=/home/testrule/eclipse/icon.xpm
Type=Application
Сохранить на рабочем столе как eclipse.desktop
.
Щелкните правой кнопкой мыши по eclipse.desktop
файлу > щелкните свойства > щелкните вкладку «Разрешения» >> щелкнитефлажокиз Execute