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"
相关推荐
知守观22 分钟前
设计模式实战:从真实老项目中看标准模板方法与工厂的落地
java·spring·设计模式
独隅28 分钟前
Claude API 实战教程:从入门到完整项目
android·java·数据库·claude·claude code
打工仔折腾 AI30 分钟前
在 Ubuntu ARM64 部署 Q1 V3.0 MuJoCo 模型:加载、单步推理与执行器响应解析
linux·运维·人工智能·python·深度学习·ubuntu·性能优化
Wang's Blog1 小时前
Java 项目实战: 交友项目 - 圈子功能实现:总结
java·开发语言·交友
‎ദ്ദിᵔ.˛.ᵔ₎1 小时前
关于Linux 线程局部存储的认识
linux·运维
SL_staff1 小时前
JVS私有化文档系统上线避坑指南:5大运维与业务协同断点及检测加固实践
java·开源·全栈
FinelyYang3 小时前
考试系统简答题 AI 阅卷:覆盖度驱动、异步评分与人机协同落地实践
java·大数据·人工智能
hhhjhl3 小时前
Yup 跨端三方库仓颉适配全流程
java·开发语言
小小de风呀3 小时前
de风——【从零开始学习Linux】(九):进程基础 —— 从冯诺依曼体系到 fork 创建进程
linux·学习
用户3126874877203 小时前
Java 对象内存布局:压缩指针、对齐填充与 JOL 实测
java