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

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

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

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

解決済

1回答

7176閲覧

jarを参照しているのに「インポートされたorg.apacheは見つかりません」のエラーが出る

MatsushitaAki

総合スコア1

Java

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2023/02/27 03:13

編集2023/02/27 05:31

実現したいこと

JavaアプリケーションにおいてApache PDF BOXおよびApache Commons Imagingライブラリを使用したい。

前提

EclipseでJavaアプリケーションを開発しています。
Servletではなく、コマンドラインから実行するアプリケーションです。
BMPをPDFとJPEGに変換するアプリケーションを作るために、Apache PDF BOXライブラリおよび Apache Commons Imagingライブラリを使用しようとしています。
Eclipseの「ビルド・パス」->「ビルド・パスの構成」から、関連するjarを追加して、ソースファイルの冒頭に import org.apache.pdfbox.pdmodel.PDPage; などの記述をしたのですが、Eclipseのエディタ上でその行の org.apache の部分に下線が表示され、エラーが出ています。
パッケージエクスプローラーの「参照ライブラリー」の中のjarをクリックするとその中身のクラス等見えておりますので、参照自体は正しくできていると思うのですが、このようなエラーが出ます。
このエラーを解決するにはどうしたらいいでしょうか。

参照しているjar

  • commons-imaging-1.0-alpha1.jar
  • xmpbox-2.0.19.jar
  • preflight-2.0.19.jar
  • pdfbox-debugger-2.0.19.jar
  • pdfbox-2.0.19.jar
  • pdfbox-tools-2.0.19.jar

JREシステムライブラリと上記jarの他には、内製の特殊なjarを含め何も参照していません。

発生している問題・エラーメッセージ

インポートされた org.apache は見つかりません

該当のソースコード

Java

1import java.io.File; 2 3import org.apache.commons.imaging.ImageInfo; 4import org.apache.commons.imaging.Imaging; 5import org.apache.pdfbox.pdmodel.PDDocument; 6import org.apache.pdfbox.pdmodel.PDPage; 7// 他にもPDF BOXなどの中に入っているクラスのインポート文。すべて「インポートされた org.apache は見つかりません」のエラーが出ている 8 9public class ConvertBmp { 10 public static void Bmp2Pdf (String sBmpFileName) { 11 try { 12 ImageInfo bmpinfo = Imaging.getImageInfo(new File(sBmpFileName)); 13 // その他Apache Commons ImagingやPDF BOXを使用するコード 14 // コードの冒頭にimport文を記述しても「ImageInfo を型に解決できません」のエラーが消えない 15 } catch (Exception e) { 16 // 省略 17 } 18 } 19}

試したこと

PDF BOX等の内部で使用されているApache Commons Loggingライブラリ等のjarへの参照がないことが原因かと思い、以下のjarへの参照を追加いたしました。

  • commons-logging-1.2.jar
  • fontbox-2.0.19.jar

これを試しても同じ現象が生じたままです。

補足情報(FW/ツールのバージョンなど)

JDK 10.0.1

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

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

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

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

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

guest

回答1

0

ベストアンサー

Eclipse や java のバージョン等違うかもしれませんが、手元の環境で
https://www.apache.org/dyn/closer.lua/pdfbox/2.0.27/pdfbox-app-2.0.27.jar
をダウンロードしプロジェクトの lib に保存・ビルドパスに入れ、
https://weblabo.oscasierra.net/java-pdfbox-1/
の空ページを作るだけのサンプルを実行してみましたが、正常に動作しました。

PDFBOX以外の jar は元々入れていたもので、それらが影響しているかは見ていません。

jar追加・コード入力状態

imaging の方は、
https://commons.apache.org/proper/commons-imaging/download_imaging.cgi
から Apache Commons Imaging 1.0-alpha3 をダウンロードして入れ、質問のコードを入れてみた所、
imaging のパッケージ名が違っていました。

× org.apache.common.imaging
〇 org.apache.commons.imaging

import は手作業で書かなくても、コードを書いて赤波線が引かれた所でクイックフィックス(CTRL+1) で候補に import が出てきて、それを選べば import が追加されます。

Eclipse クイックフィックス操作画面

投稿2023/02/27 05:10

編集2023/02/27 05:39
jimbe

総合スコア12623

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

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

MatsushitaAki

2023/02/27 05:29

回答ありがとうございます。 現象が起きているソースを確認しましたところ、私の方でもパッケージ名はorg.apache.commons.imagingと記述してありました。 事情がありソースをそのままコピペすることができないため、タイプミスをしてしまい、混乱させてしまい申し訳ありません。質問文の方を修正して誤字は直しておきます。 ですので、パッケージ名の間違いはエラーの原因ではございません。わざわざ検証いただき回答してくださったのに、私の不手際で本当に申し訳ありません。 重ね重ね、回答ありがとうございました。
jimbe

2023/02/27 05:55

>~ ですので、パッケージ名の間違いはエラーの原因ではございません 了解です。 まぁ、commons の間違いならエラー表示は違うでしょうし。 それで、こちらでは回答の通り問題は発生していませんので、バージョンで違いが無ければ、環境の方に疑問が行きます。 プロジェクトのクリーンとか、Eclipse のクリーン(再)起動とか、まっさらなワークスペースにプロジェクトを一つだけ作ってPDFとimaging だけ参照させてみるとかを試してみるのは如何でしょうか。
MatsushitaAki

2023/02/27 06:32

まっさらなワークスペースでPDFとimagingを参照してみたところエラーが表示されませんでした。 問題が起きているプロジェクトと何が違うかを順に検証していこうと考え、プロジェクトを作成する際のコンパイラー準拠レベルを 問題が起きているプロジェクトでは 10 問題がなかったプロジェクトでは 1.8 でプロジェクトを作成していたので、問題のプロジェクトの方のコンパイラー準拠レベルを1.8に変更してみたところ、エラーが出なくなりました。 原因はコンパイラー準拠レベルだったようです。 いろいろとご親切にありがとうございました。 おかげで問題が解決いたしました。本当にありがとうございます。
jimbe

2023/02/27 06:37 編集

コンパイラのバージョンで違ってたんですね…Eclipse とかが混乱してるのかと思ってましたが、想像と違ってました。 この回答は「再現しなかった」というだけですので、ご自身で↑のコメントのような回答を書いてベストアンサーとされるのが良いと思います。 お疲れさまでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問