他の端末などで作成したエクリプスプロジェクトを違う端末でインポートを行うとトラブルが頻発する。今回はそれを解決していこう。
対象しているバージョンはエクリプス2021~2022で
Tomcat9
Java17
のプロジェクトを前提としている。(Tomcat10はまた少し違うので注意)
プロジェクトをインポート
他の環境で作成したプロジェクトを以下のようにインポートを行う。
ファイルメニュー->インポート

ダイアログが開くので
一般->既存のプロジェクトをワークスペースへ
「次へ」を押す

取り込みたいプロジェクトを選択してopen

完了を押す
(プロジェクトをワークスペースにコピーして取り込みたい場合には緑の部分の値チェックを入れる)

いつものようにサーバーで実行をしようとするが・・・
無事にとりこまれたようなのでいつものようにサーバーで実行をしてみよう。
が、ここでまず最初の問題が発生する。いつもはあるはずのサーバーで実行コマンドがない!!

これの原因はエクリプスがこれをWeb動的プロジェクトと認識していないことにある。エクリプスにこれがWeb動的プロジェクトであることを教えてあげよう。
プロジェクト名を[右クリック]して[プロパティー]を選択する

プロジェクト・ファセット
を選択し、Java,JavaScript,動的Webモジュールにチェックをいれ
[適用して閉じる]を押す

先程と同じように実行を押してみよう。いつものように
サーバーで実行
が現れてくれた。
が、しかし、まだおかしい。サーブレットファイルにエラーがあることを知らせる赤のバッテンマークがついてしまっている。

この赤バッテンは何事であろうか?エラーが出ているResult.javaを開いてみよう。

なにやら、サーブレット関連のクラスにエラーが出ている。。。
マーカータグを開いてエラーの原因を見てみよう。

どうやら、javax.servletが見つからないらしい。。。エクリプスに参照先を教えてあげよう。
プロジェクトを右クリック->ビルドバス->ビルドパスの構成と進む

注)ビルドパスがない場合は、下部にあるプロパティ->Javaのビルドパスを選択する(下画像))

ライブラリータグ->クラスパスをクリック
すると右にあるボタンがアクティブになるので
外部JARの追加を押す

使用しているtomcat(今回はtomcat9)のservlet-api.jarを指定する。
以下はパスの一例
mac:
/Applications/Eclipse_2022-12.app/Contents/tomcat/9/lib/servlet-api.jar
win:
C:\Users\ユーザー名\pleiades-2022-12-java-win-64bit-jre_20230212\tomcat\9\lib\servlet-api.jar


解決!
これで、今まで通りすべての作業が行えるはずだ。
コメント