88

私はこれらの2つの用語を混同しています。

また、Spring MVC プロジェクトの src フォルダーの下にファイルを作成するにはどうすればよいですか? File オブジェクトを使用して作成すると、C:\SpringSourceTool 内にファイルが作成されます... これは ClassPath だと思いますか?

applicationcontextアプリケーションのフォルダまたはルートを取得するにはどうすればよいですか?

4

6 に答える 6

105

ビルド パスは、アプリケーションのビルドに使用されます。これには、アプリケーションのコンパイルに必要なすべてのソース ファイルとすべての Java ライブラリが含まれています。

クラスパスは、アプリケーションの実行に使用されます。これには、Java アプリケーションを実行するために必要なすべての Java クラスとライブラリが含まれます。クラスパスは必須です。デフォルトのパスは.、Java 仮想マシンがユーザー定義のパスを見つけられない場合に使用されます。( jar マニフェストのCLASSPATH環境変数、-cpフラグ、または属性)Class-Path:

于 2010-08-20T09:07:25.870 に答える
54

クラスパスは、(標準) Java コンパイラと Java ランタイムにコンパイル済みクラスの場所を伝える従来の方法です。通常、JAR ファイル名とディレクトリ名のシーケンスです。コンパイラとランタイム システムで使用されるクラスパスは同じである必要はありません、特に小さなプロジェクトの場合は、通常は同じである必要があります。

Buildpath は標準的な Java 用語ではありません。これは、典型的な IDE がアプリケーションを構成する「プロジェクト」間の関係を指定する、よりリッチな方法を表す用語です。IDE はこれを使用して、Java コードをコンパイルするためのクラスパスとソースパス、およびそれを実行するためのクラスパスを特定します。また、IDE はビルド パスを使用して、コードとその依存関係を (たとえば) WAR ファイルとしてパッケージ化する方法を決定します。

たとえば、プロジェクトの Eclipse ビルド パスには、それが依存する他のプロジェクトが含まれ、プロジェクトに含まれる/依存する追加のライブラリ JAR が一覧表示されます。また、下流のプロジェクトが依存できる現在のプロジェクトのパッケージも一覧表示します。

(プロジェクトに Maven を使用している場合、IDE ビルドパス メカニズムは、POM ファイルで宣言された依存関係の二次的なものです。たとえば、m2eclipse で Eclipse を使用すると、ビルドパスは POM ファイルから合成されます。)

于 2010-08-20T11:08:11.213 に答える
28

クラスパスは、実行時にコンパイル済みのクラスとリソースをロードするために使用されます。

ビルド パスは、プロジェクトのビルドに必要な依存関係を見つけるためにコンパイル時に使用されます。

于 2010-08-20T09:03:13.210 に答える
4

各 Java プロジェクトには、プロジェクトのコンパイルに必要なすべての依存関係を指定する独自のビルド パスがあります。これらの依存関係は、ワークスペース内の他の Java プロジェクト、Java アーカイブ .jar ファイル、または .class ファイルを含むフォルダーから取得される場合があります。

CLASSPATH 環境では、.class ファイルのみを指定する必要があります (つまり、jar、zip ファイル - jar、zip ファイル内では、Java クラスのみが見つかります)。つまり、Java 仮想マシン (JVM) が Java クラス ファイルを見つけるのを支援しています。

また、Spring MVC プロジェクトの src フォルダーの下にファイルを作成するにはどうすればよいですか? File オブジェクトを使用して作成すると、C:\SpringSourceTool 内にファイルが作成されます...

これは、JVM が開始された場所です。別の場所にファイルを作成する場合は、ここからの相対パスを使用します。

詳細については、これこれを参照してください。

于 2010-08-20T09:01:46.417 に答える
2

クラスパス(ウィキペディアから):

従来の動的ロード動作と同様に、Java プログラムの実行時に、Java 仮想マシンはクラスを見つけて遅延ロードします (クラスが最初に使用されたときにのみ、クラスのバイトコードをロードします)。クラスパスは、これらのクラスを定義するファイルをファイルシステム内で検索する場所を Java に指示します。

仮想マシンは、次の順序でクラスを検索してロードします。

ブートストラップ クラス: Java プラットフォームの基本となるクラス (Java クラス ライブラリのパブリック クラスと、このライブラリが機能するために必要なプライベート クラスで構成されます)。

拡張クラス: JRE または JDK の拡張ディレクトリにあるパッケージ、

jre/lib/ext/ ユーザー定義のパッケージとライブラリ

デフォルトでは、JDK 標準 API のパッケージと拡張パッケージのみにアクセスでき、それらの場所を設定する必要はありません。すべてのユーザー定義のパッケージとライブラリのパスは、コマンドライン (またはクラスを含む Jar ファイルに関連付けられたマニフェスト) で設定する必要があります。

簡単に言えば、プログラムの実行中、JVM は必要な場合にのみクラスをロードします。クラスが必要な場合、JVM はクラスパスに依存して、どこからバイトコードをロードするか (つまり、.classファイル) を認識します。

一方、ビルド パスは通常、プロジェクトのソース コードをコンパイルするために必要な追加のライブラリを探す場所を知るために、Eclipse などの IDE で使用されます。実行時にビルド パスは使用されません。

于 2019-12-27T16:08:19.797 に答える