Tôi có tập lệnh bash trên hộp Linux chạy tệp Jar. Khi đăng nhập như một người dùng bình thường tôi không có sự cho phép để chạy các kịch bản, nhưng nó in nhật ký sau đây:JAVA_HOME không được tìm thấy dưới dạng Sudo
*INFO * Using JVM found at /opt/jdk6/bin/java
Khi tôi cố gắng sử dụng kịch bản với Sudo tuy nhiên, nó mang lại:
*ERROR* Unable to locate java, please make sure java is installed and JAVA_HOME set
Tôi đã đặt JAVA_HOME
thành cùng một đường dẫn ở trên - có thể xem bằng echo $JAVA_HOME
& cũng được đặt làm tùy chọn trong tập lệnh. Tôi rất vui vì tập lệnh không phải là vấn đề - đó là tập lệnh kiểm soát CQ5 mặc định & Tôi đang sử dụng tập lệnh này trên hàng tá hộp khác mà không gặp sự cố. Chỉ cần không chắc chắn những gì tôi đang làm sai trên & giả sử đó là một cái gì đó tôi đang thiếu thiết lập lại Linux?
Khi tôi chạy lệnh sudo
, nó có quyền truy cập vào số JAVA_HOME
mà tôi tự thiết lập không?
Đầu ra chính xác của 'echo $ JAVA_HOME' là gốc và người dùng thông thường là gì? –
Andrew, tôi không có quyền truy cập như là người dùng root chính nó trên máy tính (không phải là sysadmin), giống như một sudoer. Chỉ tìm thấy vấn đề ở đây mặc dù: http://unix.stackexchange.com/questions/6127/java-home-not-set-in-script-when-run-using-sudo Sudo đã loại bỏ biến môi trường, quản lý nó với 'sudo -E' cờ – anotherdave
Tôi tin rằng nó phụ thuộc vào distro - một số sudos giữ envs, những người khác không – Raz