You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux Mint使用tabula-py报Java not found问题咨询

报错根因

触发的完整报错追踪如下:

Traceback (most recent call last):
File "/home/dawit/IaaAgDataNER/venv/lib/python3.9/site-packages/tabula/io.py", line 80, in _run
result = subprocess.run(
File "/usr/lib/python3.9/subprocess.py", line 505, in run with Popen(*popenargs, **kwargs) as process:
File "/usr/lib/python3.9/subprocess.py", line 951, in __init__ self._execute_child(args, executable, preexec_fn, close_fds,
File "/usr/lib/python3.9/subprocess.py", line 1821, in _execute_child raise child_exception_type(errno_num, err_msg, err_filename)
FileNotFoundError: [Errno 2] No such file or directory: 'java'

该报错与Java环境类型、版本无直接关联,本质是当前运行Python的进程无法在环境变量PATH包含的目录下找到java可执行文件,你已安装的OpenJDK本身完全满足tabula-py的运行要求。


1. tabula-py 所需Java环境说明

tabula-py是对tabula-java命令行工具的Python封装,对Java环境无特殊定制要求:

  • 版本要求:Java 8及以上版本即可
  • 发行版要求:OpenJDK、Oracle JDK、Eclipse Temurin、Amazon Corretto等所有标准合规的JRE/JDK发行版全兼容,无特定厂商绑定要求
  • 组件要求:无需安装完整JDK,仅安装JRE(Java运行时环境)即可支撑tabula-py全功能运行

2. 无root权限场景下的Java路径配置方案

以下方案均不需要root权限,按使用场景选择即可:

方案1:代码内指定Java路径(最稳妥)

直接在代码中指定java可执行文件的绝对路径,配置优先级最高,不受全局环境变量、IDE配置干扰,适合脚本固定运行、PyCharm本地调试等场景:

import tabula

# 替换为自身环境中java可执行文件的绝对路径
tabula.io.JAVA_PATH = "/home/dawit/你的OpenJDK安装目录/bin/java"

# 后续正常调用tabula接口即可
df = tabula.read_pdf("target.pdf", pages="all")

如果不确定java的绝对路径,在能正常执行java -version的终端中运行readlink -f $(which java),输出结果即为可直接填入的真实路径,可避免软链接导致的路径识别问题。

方案2:用户级永久环境变量配置

配置后当前用户启动的所有程序(包括终端进程、PyCharm等GUI程序)都能自动识别Java路径:

  1. 先执行echo $SHELL确认当前使用的shell,bash对应编辑~/.bashrc文件,zsh对应编辑~/.zshrc文件
  2. 在文件末尾追加两行配置,路径替换为自身OpenJDK的安装目录:
export JAVA_HOME="/home/dawit/你的OpenJDK安装目录"
export PATH="$JAVA_HOME/bin:$PATH"
  1. 执行source ~/.bashrc(zsh对应执行source ~/.zshrc)让配置立即生效,重启PyCharm后即可正常运行tabula相关代码。

方案3:PyCharm内单独配置运行环境

如果不想修改全局用户配置,仅需要让PyCharm内运行的Python脚本能识别Java,可直接在IDE内配置:

  1. 点击PyCharm右上角运行配置下拉框,选择「Edit Configurations」
  2. 选中运行tabula脚本对应的Python配置项,找到「Environment variables」栏点击编辑
  3. 新增一条环境变量:
  • 变量名:PATH
  • 变量值:/home/dawit/你的OpenJDK安装目录/bin:$PATH
  1. 保存配置后重新运行脚本即可。

注意:无需尝试往/usr/bin等系统目录创建软链接,这类操作需要root权限,上述三种方案完全可以覆盖所有使用场景。

内容的提问来源于stack exchange,提问作者David Esubalew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 12:45:31