Puncte:0

Cum să configurați fișierul .desktop pentru a rula fișierul .jar exact ca și cum ar fi rulat de la terminal

drapel cn

Am un program java care funcționează corect când rulez java -jar "lizzie.jar" din terminal, dar când dau dublu clic pe el în Nautilus, rulează (adică se afișează UI) dar returnează eroarea „Nu există un astfel de fișier sau director” pentru unul dintre fișierele (./leelaz) de care depinde să funcționeze corect.

Am creat un fișier .desktop în /home/nume utilizator/.local/share/applications cu urmatorul continut:

#!/usr/bin/env xdg-open
[Intrare pe desktop]
Nume=Lizzie
Tip=Aplicație
Exec=java -jar „/home/nume utilizator/opt/Lizzie/lizzie.jar”
Pictogramă=/home/nume utilizator/opt/Lizzie/lizzie_custom_logo.png
Comentariu=Lizzie
Terminal=fals

Rularea acesteia produce aceeași eroare ca și dublu clic.

Am gasit si am citit acest post și am încercat să le folosesc pe ambele Terminal=adevarat și Terminal=fals. Fișierul lizzie.jar este setat să permită executarea ca program și atât când rulează de pe Nautilus, cât și din terminal, nu sunt root. Desigur, aceasta ar putea fi o problemă pentru Lizzie și nu pentru Ubuntu, dar cred că ar trebui să pot genera același comportament ca și cum ar fi rulat de pe terminal.

Dist: Ubuntu 18.04.6 LTS; Nucleu: 5.4.0-99-generic

versiunea java se intoarce:

Versiunea openjdk „11.0.13” 2021-10-19
OpenJDK Runtime Environment (build 11.0.13+8-Ubuntu-0ubuntu1.18.04)
OpenJDK Server VM pe 64 de biți (build 11.0.13+8-Ubuntu-0ubuntu1.18.04, mod mixt, partajare)

Întrebare: Care este motivul probabil pentru care comportamentul de la dublu clic și rularea .desktop este diferit de terminal și cum pot configura un fișier .desktop care oferă exact același comportament ca și când aș rula java -jar lizzie.jar de la terminal?

N.B. Programul rulează în ambele cazuri, dar nu poate accesa dependența ./leelaz în cazul dublu-clickului sau utilizării .desktop. Lizzie raportează apoi: Nu se poate rula programul „./leelaz”: eroare=2, nu există un astfel de fișier sau director. Dar, dosarul ./leelaz este acolo și, din nou, totul funcționează atunci când rulează de la terminal.

(În caz de interes, cererea este Lizzie, o interfață pentru Go AI Leela Zero.)

Martin Thornton avatar
drapel cn
Răspunde asta la întrebarea ta? [Cum pot porni un fișier jar executabil dintr-un fișier desktop în Lubuntu?](https://askubuntu.com/questions/684581/how-can-i-start-an-executable-jar-file-from-a- desktop-file-in-lubuntu)
drapel hr
Posibil legat de: [De ce tilde nu este recunoscut ca folder de acasă în acest caz?](https://askubuntu.com/questions/1192981/why-isnt-tilde-recognised-as-home-folder-in-this-case )
Christopher.L avatar
drapel cn
@MartinThornton Mă tem că nu, și am editat întrebarea; Am scris doar „~” în cale pentru a evita să îmi scriu numele de utilizator, dar, desigur, pot scrie orice, am crezut că sunt echivalente. Calea reală este completă în fișierul .desktop.
Christopher.L avatar
drapel cn
De asemenea, după cum sa subliniat, aplicația pornește, adică se afișează interfața grafică a aplicației, dar primesc o eroare. Acesta este motivul pentru care am scris că ar putea fi o întrebare pentru dezvoltatorii Lizzie, dar cred că este ciudat că funcționează de la terminal, așa că simt că ar trebui să o pot remedia.
Puncte:1
drapel cn

Care este motivul probabil pentru comportamentul de la dublu clic și rularea .desktop este diferită de terminal

Când rulează cu succes java -jar "lizzie.jar", directorul de lucru curent este același cu directorul în care se află fișierul lizzie.jar locuiește. In caz contrar, lizzie.jar nu ar fi găsit.

lizzie.jar aparent se așteaptă să găsească fișierele de care are nevoie în propriul director. Prin urmare, trebuie să vă asigurați că setați directorul curent la acel în care se află „lizzie.jar”.

cum pot configura un fișier .desktop care oferă exact același lucru comportament de parcă aș rula java -jar lizzie.jar de la terminal?

Adăugați următoarea intrare de pe desktop la .desktop lansator:

Cale=/acasă/nume utilizator/opt/Lizzie/
Christopher.L avatar
drapel cn
Asta mi-a rezolvat problema! Sunt puțin curios de ce dublu clic pe fișierul .jar a dat același comportament; directorul de lucru nu ar fi setat doar la directorul fișierului pe care fac dublu clic?
vanadium avatar
drapel cn
Lansarea unui fișier făcând dublu clic îl lansează în directorul în care se află.
Christopher.L avatar
drapel cn
Exact, și acesta este `/home/username/opt/Lizzie/` , adică aceeași cu calea pe care am stabilit-o în .desktop care a făcut ca lansatorul de desktop să funcționeze.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.