Как мне создать файл .desktop для запуска eclipse?

12

Когда я создаю файл .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.

Декан шульце
источник
Единственная разница между моим eclipse.desktop и тем в этом вопросе состоит в том, что он добавляет некоторые аргументы при запуске eclipse. Когда я добавляю те же аргументы, я получаю одно и то же сообщение об ошибке. Файлы Unity .desktop, очевидно, не могут запустить Eclipse.
Дин Шульце

Ответы:

9

У меня такая же проблема.

Следующий файл 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

iv4z
источник
зачем нужен полный путь к icon.xpm?
Ники Де Майер
1
где я могу разместить файл eclipse.desktop?
Джонатан
1

Выходные данные говорят, что он также искал в 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= ...

сокольничий
источник
Это точно моя проблема тогда. Я установил путь к JDK в .bashrc. Глядя на документы для файла .desktop, кажется, что запись PATH делает что-то еще. Есть ли способ установить системный PATH в .desktop?
Дин Шульце
После некоторого поиска в Google я обнаружил, что решение состоит в том, чтобы изменить строку Exec следующим образом: Exec=env PATH=/home/dean/bin/jdk1.8.0/bin:$PATH /home/dean/bin/eclipse-standard-luna-M5-linux-gtk-x86_64/eclipse/eclipse документы для файла .desktop не помогли.
Дин Шульце
Однако та же самая модификация строки Exec = ... не работает для запуска IntelliJ через файл idea.sh.
Дин Шульце
@DeanSchulze Да, это Exec=env PATH= ...то, что я имел в виду в моей последней строке. Обычно вы хотите настроить PATH в .profile, а не в .bashrc. Файл .profile анализируется оболочкой входа в систему, поэтому при входе в систему он будет правильно настраивать PATH, и тогда не будет необходимости в envобходном пути. В Debian / Ubuntu .profile исходники .bashrc, так что это не должно быть проблемой, но, возможно, ваш .profile не делает этого, так что проверьте это. Или у вас есть файл .bash_profile или .bash_login, который переопределяет настройки .profile.
сокольничий
@DeanSchulze Итак, чтобы подвести итог, установите ваш PATH в .profile (или .bash_profile или .bash_login, если у вас есть один из этих файлов), а не в .bashrc, или убедитесь, что .bashrc получен из вышеупомянутых файлов. Если вы настроите его таким образом, ваш PATH должен быть верным и для файлов .desktop, и вам не понадобится «обманывать».
сокольничий
1

Я скопировал следующий блок из if [ -n "$BASH_VERSION" ]; thenинструкции:

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

Я также пытался без утверждения if:

. "$HOME/.bashrc"

но Eclipse дает сбой с тем же сообщением об ошибке в обоих случаях. Видимо HOMEне устанавливается при запуске lightdm ~/.profile.

Явно устанавливая путь в ~/.profileработах, но я хочу сохранить свой PATH и другие функции Bash (псевдонимы, функции) в одном файле.

Решение состоит в том, чтобы установить PATHна Exec=env PATH=$PATH:...линии в eclipse.desktop. Однако все, что я пробовал, не работает для запуска IntelliJ с иконки на рабочем столе.

Учитывая, что вы заново изобретаете интерфейс Linux с Unity, возможно, пришло время оставить ряд сценариев, подверженных ошибкам, и использовать что-то менее подверженное ошибкам и более простое в использовании. Скрипты все еще должны быть там для оболочек bash, но рабочий стол Unity может быть независимым от них.

Декан шульце
источник
1

У меня очень простой метод.

Откройте Gedit или текстовый редактор. Добавлять:

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

Сохранить на рабочем столе как eclipse.desktop.

Щелкните правой кнопкой eclipse.desktopмыши файл> щелкните свойства> щелкните вкладку Разрешения >> Установите флажок Выполнить

TestingRule
источник