web-dev-qa-db-ja.com

クラスパスとビルドパスの違いは何ですか

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

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

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

79
mehmet6parmak

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

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

88
Andreas_D

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

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

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

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

49
Stephen C

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

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

27
KeatsPeeks

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

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

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

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

詳細については、 this および this を参照してください。

4
pavanlimo

Andreas_Dの回答に追加して、コードで使用される外部パッケージとクラスを見つけるには、IDE /コンパイラがbuild pathを必要とすることを説明します。これらを 'dependencies'と呼ぶこともあります。

注意:これらの外部パッケージは、圧縮された.jarファイル内にパッケージ化されている場合があります。実際、 'library'内にいくつかのjarファイルがパッケージ化されている場合があります。ライブラリまたはライブラリのグループは、多くの場合 'framework'を構成します。

他の人が作成したコードがコードに必要な場合は、importコマンドを使用してimportをクラスに追加できます。ただし、コンパイラーまたはIDEはこれらのクラスの場所を知る必要があるため、このコマンドだけでは不十分です。これはbuild pathで指定します。

一方、classpathは、コードの実際の実行中に依存関係を見つける場所をアプリケーションを実行しているJVMに指示します。

注記:クラスパスはJVMが使用するためのものです。

BuildpathはIDE /コンパイラで使用するためのものであり、開発環境からクラスパスを構築する手段です。 IDEを介してビルドパスを設定すると、プロジェクト内の.classpathという隠しファイルも設定されます。これは、デプロイメント時にJVMにクラスパスを提供するために使用されます。

4
IqbalHamid

_build path_は、プロジェクトをビルドするためにコンパイル時にIDEによって使用されます

_Environment variable_は、オペレーティングシステム(OS)で実行されているすべてのプロセスからアクセス可能なグローバルシステム変数です。

PATHCLASSPATHは_environment variables_です

PATH:ディレクトリのリストを保持します。 OSは、Javaコンパイラ(PATH)やJavaランタイム(javac)などの実行可能プログラムのJavaエントリを検索します。

CLASSPATH:ディレクトリのリスト(多数のJavaクラスファイル_.class_を含む)およびJARファイル(Javaクラスの単一ファイルアーカイブ_.jar_)。 JavaコンパイラーとJavaランタイムは、プログラムで参照されるJavaクラスのCLASSPATHエントリーを検索します。

ユーザークラスの検索パス(要するに、CLASSPATH):次の順序で決定されます。

  1. current working directory (.)にデフォルト設定されています。
  2. classpath _environment variable_のエントリ。デフォルトを上書きします。
  3. classpath環境変数を上書きする_-cp_(または_-classpath_)コマンドラインオプションのエントリ。
  4. 上記のすべてをオーバーライドするランタイムコマンドラインオプション_-jar_。

続きを読む こちら

0
yoAlex5