เหตุใดตัวแปรสภาพแวดล้อมจึงไม่ได้รับการแก้ไขเมื่อคลิกที่ไฟล์. desktop
ฉันมีแอป java ที่เปิดใช้งานโดยเชลล์สคริปต์ ส่วนแรกของเชลล์สคริปต์คือการแก้ไขตำแหน่งจาวาโดยดูที่ $ JAVA_HOME สคริปต์เปลือกเป็นคนที่ทำงานได้ดีถ้าเปิดตัวจากขั้ว Exec=/bin/sh "/opt/HO/HO" %Uแต่ก็ล้มเหลวถ้าเปิดตัวโดยการดับเบิลคลิกเดสก์ทอปซึ่งมีดังต่อไปนี้ ดูที่บันทึกดูเหมือนว่าข้อผิดพลาดเกิดขึ้นเนื่องจาก $ JAVA_HOME ไม่ส่งคืนอะไรเลยเมื่อสคริปต์ถูกเรียกใช้ด้วยวิธีนั้น
ฉันพยายามแทนที่/bin/shด้วย/bin/bashแต่ก็ล้มเหลวเช่นกัน
มีความคิดว่าทำไมไม่พบตัวแปรสภาพแวดล้อมในลักษณะนั้น? ฉันควรทำอย่างไรดี?
คำตอบ
จากเอกสาร help ubuntu 1 :
ไฟล์กำหนดค่าเชลล์เช่น ~ / .bashrc, ~ / .bash_profile และ ~ / .bash_login มักจะแนะนำสำหรับการตั้งค่าตัวแปรสภาพแวดล้อม แม้ว่าสิ่งนี้อาจใช้ได้กับ Bash เชลล์สำหรับโปรแกรมที่เริ่มต้นจากเชลล์ แต่ตัวแปรที่ตั้งค่าในไฟล์เหล่านั้นจะไม่พร้อมใช้งานตามค่าเริ่มต้นสำหรับโปรแกรมที่เริ่มต้นจากสภาพแวดล้อมแบบกราฟิกในเซสชันเดสก์ท็อป
ดังนั้นการแก้ไขคือการประกาศ $ JAVA_HOME ใน .profil และทำการบันทึกใหม่
(ขอบคุณ @plumo ที่ชี้ทางที่ถูกต้องให้ฉัน)