今天折腾了最新的 deepin v23
系统,打算安装一下 IntelliJ IDEA
, .jetbrains.vmoptions.sh
脚本配置在命令行中测试有效,解压缩后直接在命令行打开没有问题。
接着就打算创建桌面应用,大概如下:
java
[Desktop Entry]
Name=IntelliJ IDEA
Comment=IntelliJ IDEA
Exec=xxxx/idea
Icon=xxxx/idea.svg
Terminal=false
Categories=Development
Type=Application
然后将其放置 /usr/share/applications/
目录下,也增加了执行权限,但是双击打开后发现,上面的.jetbrains.vmoptions.sh
脚本配置没生效。
再然后,我想看一下控制台有没有什么提示,就将 Terminal=true
,双击运行后,发现又生效了!
查了一下资料才知道:
- Terminal=false:
当设置为false时,桌面环境会直接执行Exec指定的命令,而不通过终端。
这通常意味着脚本在一个非交互式的、非登录shell中运行,因此不会读取.profile或.bashrc等启动文件。
因此,如果环境变量在这些文件中设置,它们不会被加载到脚本的环境中。 - Terminal=true:
当设置为true时,桌面环境会启动一个新的终端来运行Exec指定的命令。
新终端通常会启动一个登录shell,这会读取并执行用户的启动文件,如.profile或.bashrc。
因此,脚本在执行时会包含这些启动文件中定义的环境变量。
所以最终需要在 desktop
文件的执行命令中,使其加载整个环境:
java
Exec=bash -l -c "xxxx/idea"