質問: http://javasystem.blog4.fc2.com/blog-entry-3.html この記事によると(一部抜粋) ・JARファイル クラスファイルや設定ファイル(XML形式のものなど)がまとめられている。 多くのクラスライブラリはこの形式で配布されている。 ・WARファイル すなわち、クラスファイル(servlet)、設定ファイルのほか、JSPやHTMLファイルも含まれる。 また、web.xmlが含まれ、TomcatなどのアプリケーションサーバにWARファイルを配布すると、これを元にデプロイされる。 ・EARファイル 複数のWARファイル、(EJB)JARファイルを含む。 また、application.xmlが含まれ、アプリケーションサーバを含んだJ2EEコンテナ(JBoss, WebSphereなど)に配布すると、これを元にデプロイされる。 とのことでした。 ここで疑問なのは「そもそもJARだけではダメなのか?」ということです。 WARもEARも「それJARに含めればいいだけじゃん」と思うのですが...... そのパッケージングの内容は別途メタデータでやればいい訳でパッケージング形式でやる必要はないと思います。
回答: なんで?という純粋な疑問だと思いますが・・・ jarファイルはclassファイルを内包し warファイルはjarファイルを内包し earファイルはwarファイルを内包します jarはパッケージの配布形式 warはServletコンテナへデプロイするための形式 earはEJBコンテナへデプロイするための形式 デプロイ作業にはヒトが介在します。 メタデータは内包される情報であり、機械やプログラムに読ませる情報です。 ヒトが介在し、作業する上では、ファイル名で区別できたほうが便利だと思いませんか?