我有一个由 shell 脚本启动的 Java 应用程序。 shell 脚本的第一部分是通过查看来解析 Java 位置$JAVA_HOME
。
如果从终端启动,shell 脚本运行良好,但如果通过双击.desktop
包含以下内容的文件启动,则该脚本会失败
Exec=/bin/sh "/opt/HO/HO" %U
查看日志,似乎发生了错误,因为$JAVA_HOME
当脚本以这种方式启动时没有返回任何内容。
我尝试替换/bin/sh
为/bin/bash
,但也失败了。
知道为什么没有这样找到环境变量吗?我应该怎么办?
答案1
来自 Ubuntu 文档1:
通常建议使用 ~/.bashrc、~/.bash_profile 和 ~/.bash_login 等 Shell 配置文件来设置环境变量。虽然这可能适用于从 shell 启动的程序的 Bash shell,但默认情况下,这些文件中设置的变量对于从桌面会话中的图形环境启动的程序不可用。
因此,修复方法是声明$JAVA_HOME
并.profile
再次登录。
(谢谢@plumo,为我指明了正确的方向)