質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

5213閲覧

tabulaでpdfが読み込めない(JavaNotFoundError)

mitsuyuki

総合スコア20

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2021/08/05 00:12

以下のコードでpdfを読み込もうとしても、エラーが出てきます。
javaはインストールしたのですが、どこがいけないのかがわかりません。
どなたかご教示ください。

参考にしてみたネットの情報の一部

https://tutorialmore.com/questions-442689.htm

コードは以下の通りです。

import pandas as pd
import os
import tabula
os.chdir('d:/pdf/2')
os.path.exists('TEST20210805.pdf')
from tabula import read_pdf
df = read_pdf('TEST20210805.pdf',lattice=True,pages = '1')

なお、pdfは以下のような単純な表を罫線付きでエクセルで作ったものです。
氏名 身長
鈴木 163
田中 214
大橋 154

環境としては、anacondaをインストールし、jupyterで実行しています。
ネットで調べたのですが、path設定などの言葉を見つけ出し、探してみたのですが、
よくわかりませんでした。


FileNotFoundError Traceback (most recent call last)
C:\ProgramData\Anaconda3\lib\site-packages\tabula\io.py in _run(java_options, options, path, encoding)
79 try:
---> 80 result = subprocess.run(
81 args,

C:\ProgramData\Anaconda3\lib\subprocess.py in run(input, capture_output, timeout, check, *popenargs, **kwargs)
492
--> 493 with Popen(*popenargs, **kwargs) as process:
494 try:

C:\ProgramData\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, text)
857
--> 858 self._execute_child(args, executable, preexec_fn, close_fds,
859 pass_fds, cwd, env,

C:\ProgramData\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)
1310 try:
-> 1311 hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
1312 # no special security

FileNotFoundError: [WinError 2] 指定されたファイルが見つかりません。

During handling of the above exception, another exception occurred:

JavaNotFoundError Traceback (most recent call last)
<ipython-input-55-4dce2f256c39> in <module>
----> 1 df = read_pdf('TEST20210805.pdf',lattice=True,pages = '1')

C:\ProgramData\Anaconda3\lib\site-packages\tabula\io.py in read_pdf(input_path, output_format, encoding, java_options, pandas_options, multiple_tables, user_agent, **kwargs)
320
321 try:
--> 322 output = _run(java_options, kwargs, path, encoding)
323 finally:
324 if temporary:

C:\ProgramData\Anaconda3\lib\site-packages\tabula\io.py in _run(java_options, options, path, encoding)
89 return result.stdout
90 except FileNotFoundError:
---> 91 raise JavaNotFoundError(JAVA_NOT_FOUND_ERROR)
92 except subprocess.CalledProcessError as e:
93 logger.error("Error from tabula-java:\n{}\n".format(e.stderr.decode(encoding)))

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

「パスを通す」ですね。

インストールしただけではわざわざ実行ファイルを指定してコマンドを実行しなければいけないので、そうしなくて良いように実行ファイルの場所を環境変数「Path」に登録します。

サーバーや環境、バージョンによってインストールされる場所や実行ファイルの場所、拡張子が異なるのでこのようにしてあげる必要があります。
Pythonは詳しくないですが、大抵のプログラミング言語で最初にするんじゃないかな

投稿2021/08/05 01:11

m.ts10806

総合スコア80765

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mitsuyuki

2021/08/05 04:07

ありがとうございました。javaのパスを通すで探してみまして、環境変数などすべてやったところ、読み込めました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問