ฉันจะสร้างไฟล์ .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 binary เป็น

ฉันสามารถเปิดใช้ 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;

ปัญหาที่ฉันมีไม่ใช่สิ่งที่ถูกถามในคำถามที่เชื่อมโยงข้างต้นว่าเป็นแบบสองทาง ปัญหาของฉันเป็นเพราะเส้นทางของฉันไปยัง JDK ตั้งอยู่ใน. bashrc ของฉัน


ข้อแตกต่างเพียงอย่างเดียวระหว่าง eclipse.desktop ของฉันและข้อที่เป็นหนึ่งในคำถามนั้นคือเขาเพิ่มอาร์กิวเมนต์บางอย่างเมื่อเริ่มต้น eclipse เมื่อฉันเพิ่มอาร์กิวเมนต์เดียวกันฉันได้รับข้อความแสดงข้อผิดพลาดเดียวกัน ไฟล์ Unity .desktop ไม่สามารถเปิดใช้ Eclipse ได้
Dean Schulze

คำตอบ:


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
Nicky De Maeyer

1
ฉันจะวางไฟล์ eclipse.desktop ที่ไหน?
Jonathan

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ว่าเส้นทางที่ถูกต้องพร้อมjavaไดเรกทอรีตั้งอยู่ในนั้นหรือไม่ หากเส้นทางที่ถูกต้องมีการตั้งค่าใน.bashrcเท่านั้น.zshrcเป็นต้นเป็นไปได้ว่าสคริปต์เหล่านั้นจะไม่ถูกเรียกใช้ในการเข้าสู่ระบบดังนั้น PATH จะไม่ได้ตั้งค่าอย่างถูกต้อง นอกจากนี้หากคุณมี~/.bash_profileหรือ~/.bash_loginคุณต้องตรวจสอบเหล่านั้นด้วย หากคุณให้ไฟล์เหล่านี้เราสามารถตรวจสอบได้ว่านี่เป็นปัญหาของคุณหรือไม่

หากคุณไม่สามารถแก้ไขได้ด้วยวิธีนี้คุณสามารถแก้ไข PATH ได้โดยตรงในไฟล์ .desktop ด้วย env PATH= ...


นั่นคือปัญหาของฉันในตอนนั้น ฉันตั้งค่า PATH เป็น JDK ใน. bashrc ดูที่ docs สำหรับไฟล์ .desktop รายการ PATH ดูเหมือนว่าจะทำอย่างอื่น มีวิธีตั้งค่า PATH ระบบใน .desktop หรือไม่?
Dean Schulze

หลังจาก 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 ไม่มีความช่วยเหลือ
Dean Schulze

อย่างไรก็ตามการปรับเปลี่ยนเดียวกันกับบรรทัด Exec = ... ไม่สามารถใช้งานได้สำหรับการเรียกใช้ IntelliJ ผ่านไฟล์ idea.sh
Dean Schulze

@DeanSchulze ใช่Exec=env PATH= ...นั่นคือสิ่งที่ฉันหมายถึงในบรรทัดสุดท้ายของฉัน โดยปกติคุณต้องการตั้งค่า PATH ใน. profile ไม่ใช่. bashrc ไฟล์. profile จะถูกวิเคราะห์โดยเชลล์ล็อกอินดังนั้นมันจะตั้งค่า PATH อย่างถูกต้องเมื่อคุณเข้าสู่ระบบจากนั้นจะไม่จำเป็นต้องมีenvวิธีแก้ปัญหา บน Debian / Ubuntu. แหล่งที่มาของโปรไฟล์. bashrc ดังนั้นสิ่งนี้ไม่ควรเป็นปัญหา แต่บางที. profile ของคุณอาจไม่ได้ทำดังนั้นตรวจสอบดู หรือคุณมีไฟล์. bash_profile หรือ. bash_login ซึ่งแทนที่การตั้งค่า. profile
falconer

@DeanSchulze หากต้องการสรุปให้ตั้งค่า PATH ของคุณใน. profile (หรือ. bash_profile หรือ .bash_login หากคุณมีไฟล์ใดไฟล์หนึ่ง) ที่ไม่อยู่ใน. bashrc หรือตรวจสอบให้แน่ใจว่า. bashrc มีที่มาจากไฟล์ดังกล่าว หากคุณตั้งค่าด้วยวิธีนี้ PATH ของคุณควรถูกต้องสำหรับไฟล์ .desktop ด้วยและไม่จำเป็นต้องมี "การหลอกลวง"
falconer

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 GUI ด้วย Unity อาจถึงเวลาที่คุณจะต้องทิ้งชุดข้อผิดพลาดของสคริปต์ไว้เบื้องหลังและใช้สิ่งที่ผิดพลาดได้ง่ายกว่าและใช้งานง่ายกว่า สคริปต์จะต้องอยู่ที่นั่นสำหรับทุบตีเชลล์ แต่เดสก์ท็อป Unity อาจไม่ขึ้นต่อกัน


1

ฉันมีวิธีที่ง่ายมาก

เปิด Gedit หรือแก้ไขข้อความ เพิ่ม:

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

eclipse.desktopบันทึกในสก์ท็อปเป็น

คลิกขวาที่eclipse.desktopไฟล์> คลิกคุณสมบัติ> คลิกแท็บการอนุญาต >> คลิกกล่องกาเครื่องหมายของดำเนินการ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.