

JDKをJDK8 → JDK11に変更してビルドした際に以下のエラーが発生しました。  
このエラーの回避方法が分からないのですが、  
ご存知の方がいらっしゃればご教授いただけますでしょうか。

エラー  
パッケージ javax.sql は複数のモジュールからアクセス可能です: , java.sql

環境  
・Windows 10  
・Oracle OpenJDK11  
・Eclipse2020

(補足)  
1)現在分かっていることは、  
Javaのビルドパスに「j2ee.jar」を追加すると上記エラーが発生します。  
Javaのビルドパスから「j2ee.jar」を削除すると上記エラーは消えますが、  
「j2ee.jar」を使用しているプログラムの箇所でエラー(class not found)が発生します。

2)Eclipseから以下の操作を実施しましたが、エラーは解消されません。  
該当プロジェクトを右クリック→プロパティ→Javaのビルド・パス→ライブラリータブ→  
クラスパスの方に該当プロジェクトで使用するjarファイルを設定する。  
(JREシステム・ライブラリーはモジュールパスにあります。)

[![画像の説明をここに入力](https://i.stack.imgur.com/4kX7b.png)](https://i.stack.imgur.com/4kX7b.png)  
よろしくお願いいたします。


CC BY-SA 4.0
2021-05-06T23:27:33.157
75710
2021-08-10T01:33:41.490
37340
question
java eclipse java8
パッケージ javax.sql は複数のモジュールからアクセス可能です: <unnamed>, java.sqlの回避方法について


`javax.sql` がクラスパス、モジュールパスの両方に含まれているのが原因だと思われます。  
今回の場合、JDK, `jee.jar`の双方に含まれているのでしょう。

例えば次のような対処が考えられます。

  * `jee.jar` から `javax/sql` を取り除く
  * `jee.jar`の代わりに、より新しいものを利用する。 
    * `jee.jar`が何者なのか分かりませんが、例えば[`javax:javaee-api`](https://search.maven.org/search?q=g:javax%20AND%20a:javaee-api)で代替可能であれば、いずれのバージョンにも `javax/sql` は含まれていないようです。

参考:

  * [Eclipse is confused by imports (“accessible from more than one module”)  
](https://stackoverflow.com/a/55572922/4506703) \- Stack Overflow


CC BY-SA 4.0
2021-08-10T01:33:41.490
80697
2021-08-10T01:33:41.490
2808
75710
answer