Linux Mint Flatpak版Intellij连接PostgreSQL(JDBC)报logging.properties缺失错误问询
问题根因
Flatpak安装的Intellij运行在沙箱隔离环境中,默认无法读取宿主机的系统路径文件。你当前项目配置使用了宿主机安装的OpenJDK 11,JDK初始化日志系统时需要读取/run/host/usr/lib/jvm/java-11-openjdk-amd64/conf/logging.properties文件,沙箱权限不足导致读取失败,触发ExceptionInInitializerError,而JDBC驱动加载阶段依赖日志系统初始化,所以执行DriverManager.getConnection("jdbc:postgresql://localhost:5432/jc_student", "postgres", "999999");代码时直接报错中断。
解决方案
方案1:切换为Intellij内置JDK(优先推荐)
不需要修改任何权限,操作最简单无副作用:
- 打开Intellij顶部菜单
File > Project Structure - 进入
Platform Settings > SDKs,选择沙箱内置的OpenJDK 11,若未自动识别可手动添加沙箱内的JDK路径(无需访问宿主机目录) - 将项目的SDK、编译字节码版本都切换为该内置JDK,重启调试即可
方案2:开放Flatpak沙箱的JDK目录访问权限
如果你必须使用宿主机安装的OpenJDK 11,可通过两种方式修改权限:
图形化配置(适合新手)
- 先安装Flatseal权限管理工具:
flatpak install flathub com.github.tchx84.Flatseal - 打开Flatseal,在左侧应用列表找到你安装的Intellij IDEA版本
- 下滑到「文件系统」配置区,在「其他文件」条目下添加路径:
/run/host/usr/lib/jvm/java-11-openjdk-amd64:ro(ro表示只读权限,避免误改宿主机JDK文件) - 完全关闭Intellij后重启即可生效
命令行配置
直接在终端执行对应命令:
# 社区版IDEA执行这条 flatpak override --filesystem=/run/host/usr/lib/jvm/java-11-openjdk-amd64:ro com.jetbrains.IntelliJ-IDEA-Community # 旗舰版IDEA执行这条 flatpak override --filesystem=/run/host/usr/lib/jvm/java-11-openjdk-amd64:ro com.jetbrains.IntelliJ-IDEA-Ultimate
方案3:手动指定日志配置跳过文件读取
如果不想修改Flatpak权限,可以在运行配置中添加JVM启动参数绕过配置文件读取:
- 打开Intellij顶部菜单
Run > Edit Configurations,找到你当前项目的启动配置 - 在VM options输入框添加以下参数任意一条即可:
- 指定自定义配置文件路径:
-Djava.util.logging.config.file=你自己的配置文件绝对路径 - 直接使用控制台日志处理器跳过配置文件读取:
-Djava.util.logging.config.class=java.util.logging.ConsoleHandler
- 指定自定义配置文件路径:
- 保存配置后重新运行调试即可
内容的提问来源于stack exchange,提问作者Ilshat Shakirov
相关产品推荐
相关产品推荐

