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

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

ただいまの
回答率

88.78%

【eclipse】外部jar(ライブラリ)の読み込みに失敗してしまいます。

受付中

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 6,136

a0077476

score 12

前提・実現したいこと

eclipseを用いたJavaの勉強で躓いています。

外部からライブラリ(commons-lang3-3.9.jar)を導入しようとして、
正しく読まれていないようです。

【事象詳細】
目的プロジェクトの
ビルドパス構成の「ライブラリー」タブのクラスパス項目に
外部Jarの追加ボタンからライブラリを導入し、適用しました。

eclipseの入力補完機能では確かに導入したクラスが表示されますが、
クラスのコードを打つとインポート文に「The type org.apache.commons.lang3.builder.EqualsBuilder is not accessible」
入力したクラスの部分には「EqualsBuilder を解決できません」と表示され、コンパイルに失敗します。

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

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    The type org.apache.commons.lang3.builder.EqualsBuilder is not accessible
    EqualsBuilder を解決できません

該当のソースコード

import org.apache.commons.lang3.builder.EqualsBuilder;
.
.
.

@Override
    public boolean equals(Object obj) {
        // TODO 自動生成されたメソッド・スタブ
        return EqualsBuilder.reflectionEquals(this, obj);
    }

試したこと

・eclipseを再起動したが、変化なし
・PCを再起動したが、変化なし
・ライブラリのディレクトリを変更してみたが、変化なし。
・外部Jarの導入をクラスパスからモジュールパスに変更してみたが、変化なし。
・(http://tech-son.hatenablog.jp/entry/2017/11/27/200000)の対処方法をヒントに対応 → 変化なし
・(http://gitpub.hatenablog.com/entry/2015/04/20/181605)の対処方法をヒントに対応 → 変化なし
・(https://qiita.com/shuntaro_tamura/items/cefea651de7b6b5cd8b6)にしたがって
リフレッシュ、クリーン、ビルドを実施 → 変化なし

・旧バージョンのeclipse(Version: Oxygen.3a Release (4.7.3a))を用いて
上記と同様の外部jarに対して上記と同様の方法で導入したところ、
コンパイルエラーなく使用できた。
→ 新バージョン(Version: 2019-03 (4.11.0))のeclipseのバグの可能性?

他にも同様の事象の起こる方がいるかどうか知りたいものです。

5/20追記
使っているJREシステムライブラリーのヴァージョン(JavaSE-11)が悪さをしているかと思い
JavaSE-1.8に変更してみました。
すると、エラーは起こらなくなりました。

どうやら、JavaSE-11と一緒に使うことがエラーの原因のようです。
これはシステムライブラリのバグでしょうか。

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

eclipse Version: 2019-03 (4.11.0)
JavaSE-11
外部jar commons-lang3-3.9.jar

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • m.ts10806

    2019/05/13 09:21

    エラー文そのまま検索で過去質問ですとか解決方法を紹介されている記事が結構出てきます。まずはそこで調べてみて試して「試したこと」に追記してください。

    キャンセル

  • a0077476

    2019/05/14 00:05

    追記しました。
    以前のバージョンのeclipseでは導入成功したことから、最新バージョンのeclipseのバグではないかと考えています。
    他に同じ事象の方はいらっしゃるでしょうか。

    キャンセル

  • m.ts10806

    2019/05/22 17:22

    同じ事象というわけではないですけど、組んでいるJavaのバージョンとコンパイラのバージョンが違ったらありえそうには思います。そこまで深く突っ込んだことはないですけど、よくある話のようですね。

    キャンセル

  • a0077476

    2019/05/22 18:06

    ご回答有り難うございます。
    プロジェクトのプロパティからJavaコンパイラー設定を見直し、
    JavaSE-11準拠のコンパイラを使用していることを確認しました。
    Javaのバージョンとコンパイラのバージョンが異なるというのは今回のケースには考えにくいかと思います。

    キャンセル

回答 1

+1

以下の状態でしたら動作できますし、特に問題は発生しませんでした。

イメージ説明

インポートしているライブラリが破損しているわけではなさそうですので、Windowsをお使いの場合は、Eclipseの解凍場所の問題でしょうか。ドライブ直下に解凍すると安全です。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/05/21 01:23

    ご回答有り難うございます。
    C:\pleiades\eclipseというようにディレクトリ構成を変更しても
    問題は解決しませんでした。
    使っているJREシステムライブラリーのヴァージョン(JavaSE-11)が悪さをしているかと思い
    添付していただいた画像の通りJavaSE-1.8に変更してみました。
    すると、エラーは起こらなくなりました。

    どうやら、JavaSE-11と一緒に使うことがエラーの原因のようです。
    これはシステムライブラリのバグでしょうか。

    キャンセル

  • 2019/05/21 14:01

    [Java11]のJREシステムライブラリへ変更しても特に問題は発生しませんでした。

    プロジェクトのプロパティから、Javaコンパイラーを開き、Javaコンパイラーの準拠レベルが11になっていることと、生成された.classファイルの互換性などが11になっていることも確認してください。

    キャンセル

  • 2019/05/21 22:27

    ご回答有り難うございます。
    Javaコンパイラーの準拠レベルおよびclassファイルの互換性は11であることを確認しました。

    最新バージョンのeclipseを用いて、JavaSE-11を使用している場合特有の問題かもしれません。

    キャンセル

  • 2019/07/09 01:24

    最新バージョン(Version: 2019-06 (4.12.0))のeclipseでも
    同様の事象がでてしまうことを確認しました。

    キャンセル

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

  • ただいまの回答率 88.78%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る