&引用;“未找到Java”;在使用表格时

&引用;“未找到Java”;在使用表格时,java,python,tabula,Java,Python,Tabula,各位,我正在使用python中的table py从PDF中提取表。我使用了以下代码 import tabula table_temp = tabula.read_pdf('./example_pdf/sample1.pdf',pages=11) 但是,我得到了下面粘贴的错误消息,其中告诉我“没有这样的文件或目录:'java'”。我已经在下面的文件夹中安装了Java "/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Hom

各位,我正在使用python中的table py从PDF中提取表。我使用了以下代码

import tabula

table_temp = tabula.read_pdf('./example_pdf/sample1.pdf',pages=11)
但是,我得到了下面粘贴的错误消息,其中告诉我“没有这样的文件或目录:'java'”。我已经在下面的文件夹中安装了Java

"/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home". 
有人能帮我解决这个问题吗

谢谢


FileNotFoundError回溯(最近一次调用)
在()
---->1 table_temp=tabla.read_pdf('./示例_pdf/sample1.pdf',第11页)
/read_pdf格式的Users/Myworld/anaconda/lib/python3.5/site-packages/tabla/wrapper.py(输入路径,**kwargs)
64
65尝试:
--->66输出=子流程。检查输出(args)
67最后:
68如果是url:
/检查输出中的Users/Myworld/anaconda/lib/python3.5/subprocess.py(超时,*popenargs,**kwargs)
314
315返回运行(*popenargs,标准输出=管道,超时=超时,检查=真,
-->316**kwargs)标准件
317
318
/运行中的Users/Myworld/anaconda/lib/python3.5/subprocess.py(输入、超时、检查、*popenargs、**kwargs)
381 kwargs['stdin']=管道
382
-->383采用Popen(*popenargs,**kwargs)作为流程:
384试试:
385 stdout,stderr=进程.通信(输入,超时=超时)
/Users/Myworld/anaconda/lib/python3.5/subprocess.py in_uuuuinit_uuu(self、args、bufsize、executable、stdin、stdout、stderr、preexec_fn、close_fds、shell、cwd、env、universal_newlines、startupinfo、creationflags、restore_信号、start_new_session、pass_fds)
674 c2pread,c2pwrite,
675错误读取,错误写入,
-->676恢复信号,启动新会话)
677除:
678#如果孩子启动失败,则进行清理。
/Users/Myworld/anaconda/lib/python3.5/subprocess.py in_execute_child(self、args、execute、preexec_fn、close_fds、pass_fds、cwd、env、startupinfo、creationflags、shell、p2cread、p2c2cwrite、c2pwrite、errread、errwrite、restore_信号、start_new_会话)
1280其他:
1281 err_msg+=':'+repr(原始可执行文件)
->1282引发子项异常类型(errno\u num,err\u msg)
1283引发子项异常类型(错误消息)
1284
FileNotFoundError:[Errno 2]没有这样的文件或目录:“java”

我遇到了同样的错误。实际导致我出错的行是
subprocess.call('java')

在我的机器上为我修正了错误

如果安装java仍然不能解决问题,请尝试运行
which java
,并将输出目录添加到
PATH
环境变量中


HTH

路径中是否注册了
java
可执行文件?如果是,您应该能够从os命令行实用程序(例如cmd、bash)中
java--version
。你的操作系统是什么?非常感谢你的评论。当我在Mac终端中键入java--version时,我得到“-bash:java:command not found”。然后,您需要将
java/bin
目录放入工具加载的路径中。。在ubuntu或centos中,这将是
.bashrc
。尝试查看它。可能的副本不清楚您是如何安装Java的,但您必须更新路径
FileNotFoundError                         Traceback (most recent call last)
<ipython-input-4-41c9ba6fd519> in <module>()
----> 1 table_temp = tabula.read_pdf('./example_pdf/sample1.pdf',pages=11)

/Users/Myworld/anaconda/lib/python3.5/site-packages/tabula/wrapper.py in read_pdf(input_path, **kwargs)
     64 
     65     try:
---> 66         output = subprocess.check_output(args)
     67     finally:
     68         if is_url:

/Users/Myworld/anaconda/lib/python3.5/subprocess.py in check_output(timeout, *popenargs, **kwargs)
    314 
    315     return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
--> 316                **kwargs).stdout
    317 
    318 

/Users/Myworld/anaconda/lib/python3.5/subprocess.py in run(input, timeout, check, *popenargs, **kwargs)
    381         kwargs['stdin'] = PIPE
    382 
--> 383     with Popen(*popenargs, **kwargs) as process:
    384         try:
    385             stdout, stderr = process.communicate(input, timeout=timeout)

/Users/Myworld/anaconda/lib/python3.5/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)
    674                                 c2pread, c2pwrite,
    675                                 errread, errwrite,
--> 676                                 restore_signals, start_new_session)
    677         except:
    678             # Cleanup if the child failed starting.

/Users/Myworld/anaconda/lib/python3.5/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, restore_signals, start_new_session)
   1280                             else:
   1281                                 err_msg += ': ' + repr(orig_executable)
-> 1282                     raise child_exception_type(errno_num, err_msg)
   1283                 raise child_exception_type(err_msg)
   1284 

FileNotFoundError: [Errno 2] No such file or directory: 'java'