【问题标题】:`java` command is not found from this Python process. Please ensure Java is installed and PATH is set for `java`在这个 Python 进程中找不到“java”命令。请确保已安装 Java 并为 `java` 设置了 PATH
【发布时间】:2019-07-15 23:09:44
【问题描述】:

当我尝试运行以下代码时,我不知道如何解决此错误:

df = wrapper.read_pdf(r'C:\End_to_End\1902\PN\Scenario1_AllCorrectMin\EPR.pdf')

日志:

FileNotFoundError                         Traceback (most recent call last)
~\AppData\Local\Continuum\anaconda3\lib\site-packages\tabula\wrapper.py in read_pdf(input_path, output_format, encoding, java_options, pandas_options, multiple_tables, **kwargs)
    107     try:
--> 108         output = subprocess.check_output(args)
    109 

~\AppData\Local\Continuum\anaconda3\lib\subprocess.py in check_output(timeout, *popenargs, **kwargs)
    335     return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
--> 336                **kwargs).stdout
    337 

~\AppData\Local\Continuum\anaconda3\lib\subprocess.py in run(input, timeout, check, *popenargs, **kwargs)
    402 
--> 403     with Popen(*popenargs, **kwargs) as process:
    404         try:

~\AppData\Local\Continuum\anaconda3\lib\subprocess.py in __init__(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, encoding, errors)
    708                                 errread, errwrite,
--> 709                                 restore_signals, start_new_session)
    710         except:

~\AppData\Local\Continuum\anaconda3\lib\subprocess.py in _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, unused_restore_signals, unused_start_new_session)
    996                                          os.fspath(cwd) if cwd is not None else None,
--> 997                                          startupinfo)
    998             finally:

FileNotFoundError: [WinError 2] The system cannot find the file specified

During handling of the above exception, another exception occurred:

JavaNotFoundError                         Traceback (most recent call last)
<ipython-input-3-010e34a004ec> in <module>()
----> 1 df = wrapper.read_pdf(r'C:\End_to_End\1902\PN\Scenario1_AllCorrectMin\EPR.pdf')

~\AppData\Local\Continuum\anaconda3\lib\site-packages\tabula\wrapper.py in read_pdf(input_path, output_format, encoding, java_options, pandas_options, multiple_tables, **kwargs)
    109 
    110     except FileNotFoundError as e:
--> 111         raise JavaNotFoundError(JAVA_NOT_FOUND_ERROR)
    112 
    113     except subprocess.CalledProcessError as e:

JavaNotFoundError: `java` command is not found from this Python process. Please ensure Java is installed and PATH is set for `java`

我尝试在环境变量中更改和创建路径,但没有成功。这是截图:

有谁知道如何解决这个问题?我有java版本8(通过关于java检查)

【问题讨论】:

    标签: java python pdf jupyter-notebook


    【解决方案1】:

    您需要将Java 添加到path 变量中(查看Java 帮助中心中的this question),而不是创建一个新变量。另外,请确保您正确引用了要读取的文件,看起来您的日志引发了 FileNotFound 异常。

    【讨论】:

    • 我尝试了链接,但无法确定我应该参考哪个文件。使用的是 C:\Program Files (x86)\Java\jre1.8.0_201\bin,但没有用。谢谢
    【解决方案2】:

    System Variables 下单击Path,然后按Edit... 而不是New。然后在下一个屏幕中(Edit environment variable 用于 Path 变量)单击 New 并添加地址,例如C:\Program Files (x86)\Java\jre1.8.0_201\bin。按OK,Path 变量将被追加/更新。

    您需要重新启动您的环境(例如 Chrome、Anaconda 等)才能使路径生效。

    【讨论】:

      【解决方案3】:

      请注意,如果您的计算机上尚未安装 Java,则此代码将不起作用。我可以确认,因为我之前没有运行 Java 并遇到问题,然后当我下载 Java 并将其添加到 PATH(如上面的解决方案中所述)时,它可以工作。

      总结:

      1. 下载并安装 java(复制安装位置)
      2. 在高级系统设置中将安装位置添加到 PATH 变量中

      【讨论】:

      • 请注意,该问题指定已安装 Java。
      【解决方案4】:

      在我的工作电脑上尝试使用tabula 从 PDF 读取表格数据时,我也遇到了同样的问题。以下过程帮助我克服了这个问题。

      我也用过amazon corretto,它基本上是一个openJDK。免费使用和安装,由 Amazon 维护。

      将其安装在C:\ 驱动器中。

      现在,转到系统属性中的environment variables。在system variables 下双击Path 并单击New 添加这样的路径C:\Users\20195579\amazon-corretto-11.0.12.7.1-windows-x64-jdk\jdk11.0.12_7

      还在system variables 中添加新变量。 Variable Name: JAVA_HOME variable value: C:\Users\20195579\amazon-corretto-11.0.12.7.1-windows-x64-jdk\jdk11.0.12_7 见下图。

      添加后应该是这样的:

      如果仍然面临问题,请将 Oracle javapath 添加到 Path 中的 system variables。像这样C:\Program Files (x86)\Common Files\Oracle\Java\javapath

      在工作电脑和个人电脑上都检查过,运行良好。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-22
        • 2021-05-31
        • 2018-06-26
        • 2022-09-30
        • 1970-01-01
        • 2020-06-08
        • 2014-01-23
        • 1970-01-01
        相关资源
        最近更新 更多