เหตุใดตัวแปรสภาพแวดล้อมจึงไม่ได้รับการแก้ไขเมื่อคลิกที่ไฟล์. desktop

Jun 11 2020

ฉันมีแอป java ที่เปิดใช้งานโดยเชลล์สคริปต์ ส่วนแรกของเชลล์สคริปต์คือการแก้ไขตำแหน่งจาวาโดยดูที่ $ JAVA_HOME สคริปต์เปลือกเป็นคนที่ทำงานได้ดีถ้าเปิดตัวจากขั้ว Exec=/bin/sh "/opt/HO/HO" %Uแต่ก็ล้มเหลวถ้าเปิดตัวโดยการดับเบิลคลิกเดสก์ทอปซึ่งมีดังต่อไปนี้ ดูที่บันทึกดูเหมือนว่าข้อผิดพลาดเกิดขึ้นเนื่องจาก $ JAVA_HOME ไม่ส่งคืนอะไรเลยเมื่อสคริปต์ถูกเรียกใช้ด้วยวิธีนั้น

ฉันพยายามแทนที่/bin/shด้วย/bin/bashแต่ก็ล้มเหลวเช่นกัน

มีความคิดว่าทำไมไม่พบตัวแปรสภาพแวดล้อมในลักษณะนั้น? ฉันควรทำอย่างไรดี?

คำตอบ

4 akasolace Jun 12 2020 at 16:27

จากเอกสาร help ubuntu 1 :

ไฟล์กำหนดค่าเชลล์เช่น ~ / .bashrc, ~ / .bash_profile และ ~ / .bash_login มักจะแนะนำสำหรับการตั้งค่าตัวแปรสภาพแวดล้อม แม้ว่าสิ่งนี้อาจใช้ได้กับ Bash เชลล์สำหรับโปรแกรมที่เริ่มต้นจากเชลล์ แต่ตัวแปรที่ตั้งค่าในไฟล์เหล่านั้นจะไม่พร้อมใช้งานตามค่าเริ่มต้นสำหรับโปรแกรมที่เริ่มต้นจากสภาพแวดล้อมแบบกราฟิกในเซสชันเดสก์ท็อป

ดังนั้นการแก้ไขคือการประกาศ $ JAVA_HOME ใน .profil และทำการบันทึกใหม่

(ขอบคุณ @plumo ที่ชี้ทางที่ถูกต้องให้ฉัน)