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.)