Jak utworzyć plik .desktop, aby uruchomić środowisko Eclipse?

12

Podczas tworzenia pliku .desktop w celu uruchomienia środowiska Eclipse (najnowsza wersja z obsługą JDK 1.8) pojawia się następujący błąd:

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

Dlaczego próbuje znaleźć środowisko JRE w katalogu, w którym znajduje się plik binarny Eclipse?

Mogę uruchomić Eclipse z wiersza poleceń i przypiąć go do programu uruchamiającego i działa. Dlaczego plik .desktop jest tak zdezorientowany co do tego, co powinien zrobić?

Oto mój plik .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;

Problem, który mam, nie jest tym, o co pytano w powyższym pytaniu jako duplikat . Mój problem jest taki, że moja ŚCIEŻKA do JDK jest ustawiona w moim .bashrc.

Dean Schulze
źródło
Jedyną różnicą między moim eclipse.desktop a tym w tym pytaniu jest to, że dodaje kilka argumentów podczas uruchamiania eclipse. Po dodaniu tych samych argumentów pojawia się ten sam komunikat o błędzie. Pliki .desktop Unity najwyraźniej nie mogą uruchomić Eclipse.
Dean Schulze

Odpowiedzi:

9

Miałem ten sam problem.

Następny plik eclipse.desktop działa w systemie 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

Nie zmodyfikowałem pliku eclipse.ini

Innym rozwiązaniem jest zmodyfikowanie pliku eclipse.ini bez modyfikacji pliku eclipse.desktop

Moje 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

Opcja -vm i jej wartość (ścieżka) muszą znajdować się w osobnych wierszach.

Więcej informacji: Wiki eclipse.ini

iv4z
źródło
dlaczego potrzebuje pełnej ścieżki do icon.xpm?
Nicky De Maeyer
1
gdzie mam umieścić plik eclipse.desktop?
Jonathan
1

Dane wyjściowe mówią, że szukał również w ścieżce:

No Java virtual machine was found after searching the following locations:
...
java in your current PATH

Powiedziałeś, że możesz uruchomić eclipsez terminala: W tym przypadku powiedziałbym, że twój javajest zainstalowany w niestandardowym katalogu, który jest dodawany do PATH przez skrypt uruchamiania terminala (bashrc, zshrc itp.), Ale nie jest dodawany do sesji po zalogowaniu. Więc kiedy jesteś w sesji terminalowej, ŚCIEŻKA różni się od tej, która jest używana, gdy wywoływany jest plik .desktop.

Aby rozwiązać ten problem:

  • Aby zobaczyć, gdzie javajest zainstalowany:which java
  • Sprawdź, ~/.profileczy javajest w nim ustawiona poprawna ŚCIEŻKA dla katalogu. Jeśli poprawna ścieżka jest ustawiony tylko .bashrc, .zshrcitp to jest możliwe, że te skrypty nie są wywoływane przy logowaniu, więc ścieżka nie jest prawidłowo ustawiony. Również jeśli masz ~/.bash_profilelub ~/.bash_loginmusisz je również sprawdzić. Jeśli dostarczysz te pliki, możemy sprawdzić, czy to twój problem.

Jeśli nie możesz rozwiązać tego w ten sposób, zawsze możesz zmodyfikować ŚCIEŻKĘ bezpośrednio w pliku .desktop za pomocą env PATH= ...

sokolnik
źródło
To jest dokładnie mój problem. Ustawiłem PATH na JDK w .bashrc. Patrząc na dokumentację pliku .desktop, pozycja PATH wydaje się robić coś innego. Czy istnieje sposób na ustawienie PATH systemu w .desktop?
Dean Schulze
Po pewnym Googlingu odkryłem, że rozwiązaniem jest zmiana linii Exec w następujący sposób: Exec=env PATH=/home/dean/bin/jdk1.8.0/bin:$PATH /home/dean/bin/eclipse-standard-luna-M5-linux-gtk-x86_64/eclipse/eclipse Dokumenty dla pliku .desktop nie były pomocne.
Dean Schulze
Ta sama modyfikacja wiersza Exec = ... nie działa jednak w przypadku uruchamiania IntelliJ przez plik idea.sh.
Dean Schulze
@DeanSchulze Tak, Exec=env PATH= ...o to mi chodziło w mojej ostatniej linii. Zwykle chciałbyś ustawić PATH w .profile, a nie .bashrc. Plik .profile jest analizowany przez powłokę logowania, więc po zalogowaniu poprawnie skonfiguruje PATH, a wtedy envobejście nie będzie potrzebne . Na źródłach .profile Debiana / Ubuntu .bashrc, więc nie powinno to stanowić problemu, ale być może twój .profile tego nie robi, więc sprawdź to. Lub masz plik .bash_profile lub .bash_login, który zastępuje ustawienia .profile.
sokolnik
@DeanSchulze Podsumowując, ustaw PATH w .profile (lub .bash_profile lub .bash_login, jeśli masz jeden z tych plików), a nie w .bashrc, lub upewnij się, że .bashrc pochodzi z wyżej wymienionych plików. Jeśli skonfigurujesz go w ten sposób, twoja ŚCIEŻKA powinna również być poprawna dla plików .desktop i nie będzie potrzeby „oszukiwania”.
sokolnik
1

Skopiowałem następujący blok z if [ -n "$BASH_VERSION" ]; theninstrukcji:

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

Próbowałem także bez instrukcji if:

. "$HOME/.bashrc"

ale w obu przypadkach Eclipse kończy się niepowodzeniem z tym samym komunikatem o błędzie. Najwyraźniej HOMEnie jest ustawiony, gdy działa lightdm ~/.profile.

Jawnie ustawia ścieżkę w ~/.profiledziałaniu, ale chcę zachować PATH i inne funkcje Bash (aliasy, funkcje) w tym samym pliku.

Rozwiązaniem jest, aby ustawić PATHsię na Exec=env PATH=$PATH:...linii eclipse.desktop. Jednak nic, co próbowałem, nie działa, aby uruchomić IntelliJ z ikony na pulpicie.

Biorąc pod uwagę, że na nowo odkrywasz interfejs GUI Linuksa z Unity, być może nadszedł czas, aby pozostawić serię skryptów podatnych na błędy i użyć czegoś, co jest mniej podatne na błędy i łatwiejsze w użyciu. Skrypty nadal będą musiały być dostępne dla powłok bash, ale pulpit Unity może być od nich niezależny.

Dean Schulze
źródło
1

Mam bardzo prostą metodę.

Otwórz Gedit lub Edytor tekstu. Dodaj:

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

Zapisz na pulpicie jako eclipse.desktop.

Kliknij prawym eclipse.desktopprzyciskiem myszy plik> kliknij właściwości> kliknij kartę Uprawnienia >> Kliknij pole wyboru Wykonaj

TestingRule
źródło