Puncte:0

cum să rulați .war cu java pentru a executa în directorul de pe comanda rapidă de pe desktop

drapel ng

Acesta este cazul meu. Am un .war pe care îl execut cu java și funcționează doar în folderul său:

cd /opt/myappdir/
java -jar myapp.war

Notă: nu funcționează așa:

java -jar /opt/myappdir/myapp.war

Am creat un script bash (sudo /opt/myappdir/run.sh) pentru a lansa această comandă

#!/usr/bin/env bash
cd /opt/myappdir/
java -jar myapp.war

Până acum totul funcționează. Acum problema:

Vreau să-l lansez dintr-o comandă rapidă de pe desktop. Aceasta este comanda mea rapidă pe desktop pentru a începe războiul myapp

[Intrare pe desktop]
Codificare=UTF-8
Versiunea=1.0
Nume=Aplicația mea
Comentariu=Run MyApp
Tip=Aplicație
Exec=/opt/myappdir/run.sh
Pictogramă=/opt/myappdir/myapp.ico
Cale=/opt/myappdir/
Terminal=fals

Dar de atunci myapp.war trebuie să fie rulat cu sudo și în interiorul myappdir Mi-am modificat alerga.sh script după cum urmează

#!/usr/bin/env bash
cd /opt/myappdir/
dir=$(dirname $(readlink -m $BASH_SOURCE))
pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY QT_X11_NO_MITSHM=1 java -jar myapp.war

De ce să se alinieze cu dir=$(dirname $(readlink -m $BASH_SOURCE))?

pentru că trebuie să mă asigur myapp.war aleargă înăuntru myappdir

De ce să se alinieze cu pkexec?

deoarece la dublu clic pe scurtătura de pe desktop java trebuie rulat cu sudo

afară:

Eroare: Imposibil de accesat jarfile myapp.war

cineva Aici oferă o soluție la o întrebare similară, dar nu a funcționat pentru mine. (Modificarea propunerii:)

#!/usr/bin/env xdg-open
[Intrare pe desktop]
Versiunea=1.0
Tip=Aplicație
Terminal=fals
Exec=java -jar 'myapp.war'
Cale=/opt/myappdir/
Nume=aplicația mea
Comentariu=aplicația mea
Pictogramă=/opt/myappdir/myapp.ico

cum imi pot repara alerga.sh scriptul pentru a rula myapp.war cu sudo interior myappdir, și îl suni de la comanda rapidă de pe desktop? Mulțumiri

Actualizați

După ce explică cineva AICI, pkexec nu rulează în același director (presupun că acesta este motivul pentru care nu poate găsi myapp.war fişier). Deci, soluția ar putea fi să rulezi o comandă care ar forța să intre în director pentru a rula java, dar am încercat și am eșuat

Krackout avatar
drapel it
Ce zici de adăugarea cheii `Path=/opt/myappdir` în fișierul .desktop? Din specificația fișierului desktop, referitor la cheia de cale: «dacă intrarea este de tip Aplicație, directorul de lucru în care rulează programul».
acgbox avatar
drapel ng
@Krackout am testat și nu s-a întâmplat nimic. la fel. Problema este încă `run.sh`

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.