tại sao biến môi trường không được giải quyết khi nhấp đúp vào tệp .desktop?
Tôi có một ứng dụng java được khởi chạy bởi tập lệnh shell. Phần đầu tiên của tập lệnh shell là giải quyết vị trí java bằng cách xem $Java_HOME. Tập lệnh shell đang hoạt động tốt nếu được khởi chạy từ thiết bị đầu cuối nhưng không thành công nếu được khởi chạy bằng cách bấm đúp vào .desktop chứa tệp Exec=/bin/sh "/opt/HO/HO" %U. Nhìn vào nhật ký, có vẻ như lỗi xảy ra vì $Java_HOME không trả về gì khi tập lệnh được khởi chạy theo cách đó.
Tôi đã cố gắng thay thế /bin/shbằng /bin/bashnhưng nó cũng không thành công.
Bất kỳ ý tưởng nào tại sao các biến môi trường không được tìm thấy theo cách đó? Tôi nên làm gì?
Trả lời
từ trợ giúp tài liệu ubuntu 1 :
Các tệp cấu hình trình bao như ~/.bashrc, ~/.bash_profile và ~/.bash_login thường được đề xuất để đặt các biến môi trường. Mặc dù điều này có thể hoạt động trên trình bao Bash đối với các chương trình bắt đầu từ trình bao, nhưng các biến được đặt trong các tệp đó không có sẵn theo mặc định đối với các chương trình bắt đầu từ môi trường đồ họa trong phiên máy tính để bàn.
Do đó, cách khắc phục là khai báo $Java_HOME trong .profil và đăng nhập lại
(cảm ơn bạn @plumo đã chỉ cho tôi đi đúng hướng)