Linux 桌面应用启动 IntelliJ IDEA 环境变量失效

今天折腾了最新的 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"
相关推荐
benbenAItalk5 小时前
数字人口播视频的批量生产实践:素材规范、任务编排与质量验收
java·前端·音视频
sunshine22 girl6 小时前
Java学习二 基本语法2, 算术运算符
java·学习
niucloud-admin6 小时前
JAVA V6 多商户商城 开发文档——插件目录结构
java·开发语言
2601_962885726 小时前
如何用 Python 扫描 A 股跳空缺口并统计缺口回补概率?
java·前端·python
滕州市燕猫虎计算机科技工作室个体工商户6 小时前
Java锁
java·开发语言
一技安身6 小时前
【信创】银河麒麟V10、统信UOS解压7Z文件
linux·运维·服务器
奔跑的架构师7 小时前
[A-50]ARMv9/v8-DVFS系统架构
linux·arm开发·架构·系统架构·arm
迷途呀7 小时前
CI/CD 自动化部署实践:让代码提交后自动上线
linux·运维·nginx·ci/cd·自动化
赴生-8 小时前
Liunx 操作系统 进程概念(上)
linux
binqian8 小时前
【linux】OpenSSH升级文档
linux·运维·网络