Як створити .desktop файл для запуску затемнення?


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 з командного рядка, і я можу зафіксувати його до пускового пристрою, і він працює. Чому файл .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 та тією у цьому питанні полягає в тому, що він додає деякі аргументи під час запуску затемнення. Коли я додаю ті самі аргументи, я отримую те саме повідомлення про помилку. Файли Undes .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


для чого потрібен повний шлях до 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= ...


Це саме моє питання тоді. Я встановив PATH в JDK в .bashrc. Дивлячись на документи для .desktop-файлу, запис PATH, здається, робить щось інше. Чи є спосіб встановити систему PATH у .desktop?
Дін Шульце

Після деякого Googling я виявив, що рішення полягає в зміні рядка 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, можливо, настав час залишити ряд скриптів, схильних до помилок, і використати те, що менш схильне до помилок і простіше у використанні. Сценарії все-таки повинні бути там, щоб бути боевими оболонками, але робочий стіл Unity міг бути незалежним від них.


1

У мене дуже простий метод.

Відкрийте Gedit або редактор тексту. Додати:

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

Зберегти на робочому столі як eclipse.desktop.

Клацніть правою кнопкою миші на eclipse.desktopфайл> клацніть властивості> клацніть на вкладці Дозволи> Установіть прапорець Виконати

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.