2016-04-20 5 views
0

私は現在、WEBプロジェクトとEJBプロジェクトを含むEARアプリケーションを開発中です。 eclipseをローカルでセットアップするには、多くのビルドパス設定とすべてを行います。 これらのビルドパスはすべて、プロジェクトの.classpathに表示されます。アプリケーションでの.Classpathの使用と意義EAR

EARをエクスポートしてサーバーにデプロイすると、すべてサーバー上で動作します。 私の疑問は、私のプロジェクトの.classpathに存在する私のローカルシステムパスについてサーバがどのように知っているかです。 実行時に.classpathは意味を持ちませんか?

説明してください。

答えて

2

.classpathファイルはEclipse固有で、EARにバンドルされません。 Eclipseはそれを使用してプロジェクト用にclasspathを設定します。

EARは構造がよく定義されており、サーブレットコンテナはその構造を理解しており、EARファイル内でそれを知り、実行時にロードするクラスを抽出します。

明らかに、サーバーにはあなたのローカル環境に関する知識がありません。 EAR(またはWARまたはJAR)ファイルは、単純なアーカイブファイルです(いくつかの仕様またはファイル順序とすべてのものを含みます)。任意のユーティリティ(7zipなど)を使用して解凍できます。パックされたEARの構造を確認してください。これにより、サーバーに送られる内容をよりよく理解できます。

0

@ 11th Dimensionに追加したところでは、.classpathは実行時に意味を持ちません。これはコンパイル時にコードが必要とするjar、ライブラリなどの "ビルド"パスを定義するためにのみ使用されます。
1. WAR
3.サーバーランタイムのMANIFEST.MFファイル
2.内容WEB-INF/libディレクトリの内容 - - これが来る、あなたが使用しているアプリケーションサーバーとパッケージ化 - のWebSphere

ランタイム依存関係が全く異なるとによって処理される

関連する問題