Điểm:0

cách chạy .war với java để thực thi bên trong dir từ phím tắt trên màn hình

lá cờ ng

Đây là trường hợp của tôi. Tôi có một .war mà tôi thực thi với java và nó chỉ hoạt động bên trong thư mục của nó:

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

Lưu ý: Nó không hoạt động như vậy:

java -jar /opt/myappdir/myapp.war

Tôi đã tạo một tập lệnh bash (sudo /opt/myappdir/run.sh) để khởi chạy lệnh này

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

Cho đến nay mọi thứ hoạt động. Bây giờ vấn đề:

Tôi muốn khởi chạy nó từ một phím tắt trên màn hình của mình. Đây là lối tắt trên màn hình của tôi để bắt đầu chiến tranh myapp

[Mục nhập máy tính để bàn]
Mã hóa=UTF-8
Phiên bản=1.0
Tên=Ứng dụng của tôi
Bình luận=Chạy ứng dụng của tôi
Loại=Ứng dụng
Exec=/opt/myappdir/run.sh
Biểu tượng=/opt/myappdir/myapp.ico
Đường dẫn=/opt/myappdir/
Thiết bị đầu cuối = sai

Nhưng kể từ khi myapp.war cần được chạy với sudo và bên trong myappdir tôi sửa đổi của tôi chạy.sh kịch bản như sau

#!/usr/bin/env bash
cd /opt/myappdir/
dir=$(tên thư mục $(readlink -m $BASH_SOURCE))
pkexec env DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY QT_X11_NO_MITSHM=1 java -jar myapp.war

Tại sao dòng với dir=$(tên thư mục $(readlink -m $BASH_SOURCE))?

vì tôi cần đảm bảo myapp.war đang chạy bên trong myappdir

Tại sao dòng với pkexec?

bởi vì khi nhấp đúp vào phím tắt trên màn hình java cần phải được chạy với sudo

ngoài:

Lỗi: Không thể truy cập jarfile myapp.war

người nào Đây cung cấp một giải pháp cho một câu hỏi tương tự, nhưng nó không hiệu quả với tôi. (Sửa đổi đề xuất :)

#!/usr/bin/env xdg-open
[Mục nhập máy tính để bàn]
Phiên bản=1.0
Loại=Ứng dụng
Thiết bị đầu cuối = sai
Exec=java -jar 'myapp.war'
Đường dẫn=/opt/myappdir/
Tên = ứng dụng của tôi
Nhận xét = ứng dụng của tôi
Biểu tượng=/opt/myappdir/myapp.ico

làm thế nào tôi có thể sửa chữa của tôi chạy.sh kịch bản để chạy myapp.war với sudo phía trong myappdirvà gọi nó từ lối tắt trên màn hình? Cảm ơn

Cập nhật

Theo những gì ai đó giải thích ĐÂY, pkexec không chạy trong cùng một thư mục (tôi đoán đó là lý do tại sao nó không thể tìm thấy myapp.war tập tin). Vì vậy, giải pháp có thể là chạy một lệnh buộc nó vào thư mục để chạy java, nhưng tôi đã thử và không thành công

Krackout avatar
lá cờ it
Còn việc thêm khóa `Path=/opt/myappdir` vào tệp .desktop thì sao? Từ đặc tả tệp máy tính để bàn, liên quan đến khóa đường dẫn: «nếu mục nhập thuộc loại Ứng dụng, thư mục làm việc để chạy chương trình trong».
acgbox avatar
lá cờ ng
@Krackout tôi đã thử nghiệm và không có gì xảy ra. giống nhau ra. Vấn đề vẫn là `run.sh`

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.