(1) エラー「Project ‘XXXX’ is missing required library: ‘XXXX.jar’」の原因と対処法
(1-1) エラー概要
(1-2) エラー原因
(1-3) エラー対処
(1) エラー「Project ‘XXXX’ is missing required library: ‘XXXX.jar’」の原因と対処法
(1-1) エラー概要
Eclipseの動的WebProjectを環境A(エクスポート)⇒環境B(インポート)する際に、いくつかのjarファイルがエラーになっており、次のエラーメッセージが出力されていました。
(エラーメッセージ)
Project '[ProjectName]' is missing required library: 'XXXX.jar' Unbound class path container: 'JRE System Library [jdk1.8.0_231-amd64]' in project 'UtilComponents' The project cannot be built until build path errors are resolved The project was not build since it depends on [ProjectName], which has build path errors
(参考)エクスポート手順
https://rainbow-engine.com/eclipse-export-javaproject/
エラーメッセージからは「ビルドパス」に関する問題が発生している事が読み取れます。
ビルドパスはJavaをコンパイルしてプロジェクトをビルドする際の「依存関係」を解決するための情報で、具体的な内容は「ソースコード」やプロジェクトに付随する「Jarやclassesフォルダ」の内容や、外部ライブラリ等になります。
(図111)
(1-2) エラー原因
原因は上でも触れました、jarファイルが何らかの理由で正常にエクスポートされず、インポート先で存在していないためです。
正常にエクスポートされなかった原因については、jarファイルを配置するディレクトリが良くなかったのでは?と推定されます。
その根拠として、正常にエクスポートされたjar(ojdbc6.jar)等はプロジェクト名のディレクトリ配下に配置されていますが、失敗したjarは全て「home/admin/ext-jar」など配下以外の関係ないパスにあったためです。
(図121)③
(図121)①
念のためエクスポート元のプロジェクトを確認しましたが、当然ながらエラーは起きていません(エクスポートのタイミングで資材に含まれなかったと考えるのが自然)。
(図121)②
(1-3) エラー対処
ビルドパスのエラーを解消するために、不足していたjarファイルを所定のディレクトリに格納した状態で、再度プロジェクトをエクスポート&インポートする事でエラーが解消しました。
「所定のディレクトリ」は例では「eclipse-workspace配下」⇒「ご自身のプロジェクトフォルダ配下」⇒WebContent⇒WEB-INF⇒libになります。
(実際の手順)
①エラーとなったプロジェクトに「lib」フォルダがあるか?のチェック
例では、エラーとなったプロジェクトは「UtilComponents」という名称で、プロジェクトフォルダ配下には「lib」フォルダはありませんでしたので、次に新規作成をします。
/home/admin/eclipse-workspace/TennisDatabase/WebContent/WEB-INF/lib
(図131)①エラーとなったプロジェクトに「lib」フォルダはなし
②「lib」フォルダの作成
Eclipseからプロジェクトを右クリックして「New」⇒「Folder」を選択し、フォルダ名を付与して作成します。
(図131)②
③チェック
「lib」ディレクトリが追加された事の確認をします。
ls -la
(図131)③
④jarファイルの配置
作成したディレクトリに、不足していたjarファイルをコピーします。
(図131)④
⑤Eclipseでの反映確認
左ペインのプロジェクトツリー上にも、jarファイルが反映されたらOKです(反映されない場合は「右クリック」⇒「リフレッシュ」等を行うと良いかも知れません)。
(図131)⑤
ここまで出来たら、再度以下の手順に沿ってエクスポート&インポートすれば、エラーは起こらないはずです。
(参考)エクスポート手順
https://rainbow-engine.com/eclipse-export-javaproject/