【Java】The type XXX is not accesibleのエラーの対処方法

私の環境ではJava11を使用しているのですが

自作jarライブラリを作って、別のJavaプロジェクトで取り込んで使用しようとしたところ

 

The type XXX is not accesible

というエラーが出て、構文にエラーはないのに、自作jarファイルが読み込めない・・

という状況に陥りました。

 

結論から言うと

ライブラリ側のJavaプロジェクトにmodule-info.javaというファイルがあると思います。

そのmodule-info.java

exports パッケージ名(※例えば Sample.Test);

と記述してjarファイルをエクスポートすれば解決できました!

 

まずなぜエラーが出ていたかというと

Java9以降からモジュール単位のアクセス権限の機能が追加されたらしく

何も設定しないと、モジュールのアクセスが全て非公開になるそうです。

 

なので、先程のexports ...で公開したいパッケージ名を記述して

アクセス範囲を全公開にしてあげることで

他のJavaプロジェクトからでも、自作ライブラリのjarファイルを参照できるようになります!!

 

以上、メモでした。

質問などあればお気軽にどうぞ(^^)