Score:0

วิธีกำหนดค่าไฟล์ .desktop ให้รันไฟล์ .jar เหมือนกับที่รันจากเทอร์มินัล

ธง cn

ฉันมีโปรแกรมจาวาที่ทำงานได้อย่างถูกต้องเมื่อฉันเรียกใช้ จาวา -jar "lizzie.jar" จากเทอร์มินัล แต่เมื่อฉันดับเบิลคลิกใน Nautilus มันจะทำงาน (เช่น UI แสดง) แต่ส่งคืนข้อผิดพลาด "ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว" สำหรับไฟล์ใดไฟล์หนึ่ง (./leelaz) ขึ้นอยู่กับการทำงานอย่างถูกต้อง

ฉันได้สร้างไฟล์ .desktop ใน /home/username/.local/share/applications โดยมีเนื้อหาดังนี้

#!/usr/bin/env xdg-เปิด
[รายการเดสก์ท็อป]
ชื่อ=ลิซซี่
Type=ใบสมัคร
Exec=java -jar "/home/username/opt/Lizzie/lizzie.jar"
ไอคอน=/home/ชื่อผู้ใช้/opt/Lizzie/lizzie_custom_logo.png
ความคิดเห็น = ลิซซี่
เทอร์มินัล = เท็จ

การเรียกใช้สิ่งนี้ทำให้เกิดข้อผิดพลาดเช่นเดียวกับการดับเบิลคลิก

ฉันพบและอ่าน นี้ โพสต์และฉันได้ลองใช้ทั้งสองอย่างแล้ว เทอร์มินัล=จริง และ เทอร์มินัล = เท็จ. ไฟล์ lizzie.jar ถูกตั้งค่าให้อนุญาตให้ดำเนินการเป็นโปรแกรม และทั้งเมื่อเรียกใช้จาก Nautilus และเทอร์มินัล ฉันไม่ได้รูท แน่นอนว่านี่อาจเป็นปัญหาสำหรับ Lizzie และไม่ใช่ Ubuntu แต่ฉันคิดว่าฉันควรจะสร้างพฤติกรรมแบบเดียวกันได้เหมือนกับที่เรียกใช้จากเทอร์มินัล

Dist: อูบุนตู 18.04.6 LTS; เคอร์เนล: 5.4.0-99-ทั่วไป

จาวา - เวอร์ชัน ผลตอบแทน:

openjdk เวอร์ชัน "11.0.13" 2021-10-19
สภาพแวดล้อมรันไทม์ OpenJDK (รุ่น 11.0.13+8-Ubuntu-0ubuntu1.18.04)
OpenJDK 64-Bit Server VM (รุ่น 11.0.13+8-Ubuntu-0ubuntu1.18.04, โหมดผสม, การแชร์)

คำถาม: อะไรคือสาเหตุที่น่าจะเป็นไปได้ที่ลักษณะการทำงานจากการดับเบิลคลิกและการเรียกใช้ .desktop แตกต่างจากเทอร์มินัล และฉันจะกำหนดค่าไฟล์ .desktop ที่ให้ลักษณะการทำงานเหมือนกับที่ฉันเรียกใช้ทุกประการได้อย่างไร java -jar lizzie.jar จากสถานี?

NB โปรแกรมทำงานในทั้งสองกรณี แต่ไม่สามารถเข้าถึงการพึ่งพาได้ ./เลลาซ ในกรณีดับเบิลคลิกหรือใช้ .desktop ลิซซี่รายงาน: ไม่สามารถเรียกใช้โปรแกรม "./leelaz": error=2, ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว แต่ไฟล์ ./เลลาซ อยู่ที่นั่น และอีกครั้ง ทุกอย่างทำงานได้เมื่อรันจากเทอร์มินัล

(กรณีสนใจสมัครเป็น ลิซซี่ซึ่งเป็นอินเทอร์เฟซสำหรับ Go AI Leela Zero)

Martin Thornton avatar
cn flag
สิ่งนี้ตอบคำถามของคุณหรือไม่ [ฉันจะเริ่มไฟล์ jar ที่เรียกใช้งานได้จากไฟล์เดสก์ท็อปใน Lubuntu ได้อย่างไร](https://askubuntu.com/questions/684581/how-can-i-start-an-executable-jar-file-from-a- ไฟล์เดสก์ท็อปใน lubuntu)
hr flag
อาจมีความเกี่ยวข้องกัน: [เหตุใดจึงไม่รู้จักตัวหนอนเป็นโฟลเดอร์เริ่มต้นในกรณีนี้](https://askubuntu.com/questions/1192981/why-isnt-tilde-recognised-as-home-folder-in-this-case )
Christopher.L avatar
cn flag
@MartinThornton ฉันเกรงว่าจะไม่ใช่ และฉันได้แก้ไขคำถามแล้ว ฉันเขียนเฉพาะ '~' ในเส้นทางเพื่อหลีกเลี่ยงการเขียนชื่อผู้ใช้ของฉัน แต่แน่นอนว่าฉันสามารถเขียนอะไรก็ได้ ฉันแค่คิดว่ามันเทียบเท่ากัน เส้นทางจริงเสร็จสมบูรณ์ในไฟล์ .desktop
Christopher.L avatar
cn flag
นอกจากนี้ ดังที่ได้กล่าวไปแล้ว แอปเริ่มทำงาน เช่น gui ของแอปพลิเคชันแสดงขึ้น แต่ฉันได้รับข้อผิดพลาด นี่คือเหตุผลที่ฉันเขียนว่าอาจเป็นคำถามสำหรับ Lizzie-devs แต่ฉันคิดว่ามันแปลกที่มันใช้งานได้จากเทอร์มินัล ดังนั้นฉันจึงรู้สึกว่าฉันควรจะแก้ไขได้
Score:1
ธง cn

อะไรคือสาเหตุที่เป็นไปได้ของพฤติกรรมจากการดับเบิลคลิกและ การรัน .desktop นั้นแตกต่างจากเทอร์มินัล

เมื่อรันสำเร็จ จาวา -jar "lizzie.jar"ไดเร็กทอรีการทำงานปัจจุบันของคุณจะเหมือนกับไดเร็กทอรีที่เก็บไฟล์ ลิซซี่.กระปุก อาศัยอยู่ มิฉะนั้น, ลิซซี่.กระปุก จะไม่พบ

ลิซซี่.กระปุก เห็นได้ชัดว่าคาดว่าจะพบไฟล์ที่ต้องการในไดเร็กทอรีของตนเอง ดังนั้นคุณต้องแน่ใจว่าได้ตั้งค่าไดเร็กทอรีปัจจุบันเป็นตำแหน่งที่ "lizzie.jar" อยู่

ฉันจะกำหนดค่าไฟล์ .desktop ที่ให้เหมือนกันทุกประการได้อย่างไร พฤติกรรมราวกับว่าฉันรัน java -jar lizzie.jar จากเทอร์มินัลหรือไม่

เพิ่มรายการเดสก์ท็อปต่อไปนี้ใน .เดสก์ทอป ตัวเรียกใช้งาน:

Path=/home/username/opt/Lizzie/
Christopher.L avatar
cn flag
สิ่งนี้ช่วยแก้ปัญหาของฉันได้! ฉันสงสัยเล็กน้อยว่าทำไมการดับเบิลคลิกที่ไฟล์ .jar จึงมีพฤติกรรมแบบเดียวกัน ไดเร็กทอรีการทำงานจะไม่ถูกตั้งค่าเป็นไดเร็กทอรีของไฟล์ที่ฉันดับเบิลคลิกหรือไม่
vanadium avatar
cn flag
เรียกใช้ไฟล์โดยดับเบิลคลิกเพื่อเปิดใช้งานในไดเร็กทอรีที่อยู่
Christopher.L avatar
cn flag
แน่นอน และนี่คือ `/home/username/opt/Lizzie/` นั่นคือเหมือนกับเส้นทางที่ฉันตั้งไว้ใน .desktop ซึ่งทำให้ desktop-launcher ทำงานได้

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา