Bagaimana cara membuat file .desktop untuk meluncurkan eclipse?

12

Ketika saya membuat file .desktop untuk meluncurkan eclipse (build terbaru dengan dukungan JDK 1.8) saya mendapatkan kesalahan berikut:

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

Mengapa ia mencoba menemukan JRE di bawah direktori tempat gerhana biner berada?

Saya bisa meluncurkan Eclipse dari baris perintah, dan saya bisa menyematkannya ke peluncur dan berfungsi. Mengapa file .desktop sangat bingung tentang apa yang seharusnya dilakukan?

Ini file .desktop saya:

[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;

Masalah yang saya alami bukanlah apa yang ditanyakan dalam pertanyaan yang ditautkan di atas sebagai duplice . Masalah saya adalah karena PATH saya ke JDK diatur dalam .bashrc saya.

Dean Schulze
sumber
Satu-satunya perbedaan antara eclipse.desktop saya dan yang ada di pertanyaan itu adalah dia menambahkan beberapa argumen saat memulai eclipse. Ketika saya menambahkan argumen yang sama saya mendapatkan pesan kesalahan yang sama. Unity .desktop files tampaknya tidak dapat meluncurkan Eclipse.
Dean Schulze

Jawaban:

9

Saya memiliki masalah yang sama.

File eclipse.desktop berikutnya berfungsi di 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

Saya tidak mengubah eclipse.ini

Solusi lain adalah memodifikasi file eclipse.ini tanpa memodifikasi eclipse.desktop Anda

Eclipse.ini saya:

-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

Opsi -vm dan nilainya (path) harus berada di baris terpisah.

Info lebih lanjut: Wiki eclipse.ini

iv4z
sumber
mengapa perlu path lengkap ke ikon.xpm?
Nicky De Maeyer
1
di mana saya menempatkan file eclipse.desktop?
Jonathan
1

Outputnya mengatakan bahwa ia mencari di PATH juga:

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

Anda bilang Anda bisa meluncurkan eclipsedari terminal: Dalam hal ini saya akan mengatakan bahwa Anda javadiinstal ke direktori non-standar, yang ditambahkan ke PATH Anda dengan skrip startup terminal (bashrc, zshrc, dll.) Tetapi tidak ditambahkan ke sesi Anda ketika Anda login. Jadi ketika Anda berada di sesi terminal PATH Anda berbeda dari yang digunakan saat file .desktop dipanggil.

Untuk memecahkan masalah ini:

  • Untuk melihat di mana javadiinstal:which java
  • Periksa ~/.profileapakah PATH yang benar dengan javadirektori sudah diatur di dalamnya. Jika jalur yang benar hanya disetel dalam .bashrc,, .zshrcdll. Maka ada kemungkinan bahwa skrip tersebut tidak dipanggil saat masuk, sehingga PATH tidak diatur dengan benar. Juga jika Anda memiliki ~/.bash_profileatau ~/.bash_loginAnda harus memeriksanya juga. Jika Anda memberikan file-file ini, kami dapat memeriksa apakah ini masalah Anda.

Jika Anda tidak dapat menyelesaikannya dengan cara ini, Anda selalu dapat memodifikasi PATH langsung dalam file .desktop dengan env PATH= ...

elang
sumber
Itulah masalah saya saat itu. Saya mengatur PATH ke JDK di .bashrc. Melihat dokumen untuk file .desktop, entri PATH tampaknya melakukan sesuatu yang lain. Apakah ada cara untuk mengatur sistem PATH di .desktop?
Dean Schulze
Setelah beberapa Googling saya menemukan bahwa solusinya adalah mengubah baris Exec seperti ini: Exec=env PATH=/home/dean/bin/jdk1.8.0/bin:$PATH /home/dean/bin/eclipse-standard-luna-M5-linux-gtk-x86_64/eclipse/eclipse Dokumen untuk file .desktop tidak membantu.
Dean Schulze
Namun, modifikasi yang sama pada baris Exec = ... tidak berfungsi untuk meluncurkan IntelliJ melalui file idea.sh.
Dean Schulze
@DeanSchulze Ya, Exec=env PATH= ...itulah yang saya maksud di baris terakhir saya. Biasanya Anda ingin mengatur PATH di .profile, bukan .bashrc. File .profile diuraikan oleh shell login sehingga akan mengatur PATH dengan benar ketika Anda login, dan kemudian tidak perlu untuk menyelesaikannya env. Pada Debian / Ubuntu .profile sources .bashrc, jadi ini seharusnya tidak menjadi masalah, tapi mungkin .profile Anda tidak melakukannya, jadi periksalah. Atau Anda memiliki file .bash_profile atau .bash_login yang mengabaikan pengaturan .profile.
Falcon
@DeanSchulze Jadi untuk meringkas, atur PATH Anda di .profile (atau .bash_profile atau .bash_login jika Anda memiliki salah satu file itu) tidak dalam .bashrc, atau pastikan .bashrc bersumber dari file-file yang disebutkan di atas. Jika Anda mengaturnya dengan cara ini, PATH Anda juga harus benar untuk file .desktop, dan tidak perlu untuk "menipu".
Falcon
1

Saya telah menyalin blok berikut dari dalam if [ -n "$BASH_VERSION" ]; thenpernyataan:

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

Saya juga sudah mencoba tanpa pernyataan if:

. "$HOME/.bashrc"

tetapi Eclipse gagal dengan pesan kesalahan yang sama dalam kedua kasus. Tampaknya HOMEtidak disetel saat lightdm berjalan ~/.profile.

Secara eksplisit mengatur path dalam ~/.profilekarya, tapi saya ingin menjaga PATH saya dan fitur Bash saya yang lain (alias, fungsi) dalam file yang sama.

Solusinya adalah dengan mengatur PATHon the Exec=env PATH=$PATH:...line di eclipse.desktop. Namun, tidak ada yang saya coba untuk memulai IntelliJ dari ikon desktop.

Mengingat bahwa Anda sedang menciptakan kembali pengalaman GUI Linux dengan Unity, mungkin inilah saatnya meninggalkan serangkaian skrip yang rentan kesalahan dan menggunakan sesuatu yang tidak terlalu rentan kesalahan dan lebih mudah digunakan. Script masih harus ada di sana untuk bash shell, tetapi desktop Unity bisa independen dari mereka.

Dean Schulze
sumber
1

Saya punya metode yang sangat sederhana.

Buka Gedit atau Editor Teks. Menambahkan:

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

Simpan di desktop sebagai eclipse.desktop.

Klik kanan pada eclipse.desktopfile> klik properti> klik tab Izin >> Klik kotak centang Jalankan

Aturan Pengujian
sumber