Program Tip

클래스 경로와 빌드 경로의 차이점은 무엇입니까?

programtip 2020. 10. 9. 12:17
반응형

클래스 경로와 빌드 경로의 차이점은 무엇입니까?


이 두 용어와 혼동됩니다.

또한 Spring MVC 프로젝트의 src 폴더 아래에 파일을 생성하려면 어떻게해야합니까? File 개체를 사용하여 만들면 C : \ SpringSourceTool 안에 파일이 생성됩니다.이게 ClassPath 맞습니까?

applicationcontext응용 프로그램 폴더 또는 루트를 어떻게 얻을 수 있습니까?


빌드 경로는 응용 프로그램을 구축하는 데 사용됩니다. 여기에는 애플리케이션을 컴파일하는 데 필요한 모든 소스 파일과 모든 Java 라이브러리가 포함됩니다.

클래스 경로는 애플리케이션을 실행하기 위해 사용된다. 여기에는 Java 애플리케이션을 실행하는 데 필요한 모든 Java 클래스 및 라이브러리가 포함됩니다. 클래스 경로는 필수이며 .Java 가상 머신이 사용자 정의 경로를 찾을 수없는 경우 사용되는 기본 경로입니다 . ( jar 매니페스트의 CLASSPATH환경 변수, -cp플래그 또는 Class-Path:속성)


클래스 경로는 (표준) Java 컴파일러와 Java 런타임에 컴파일 된 클래스를 찾을 위치를 알려주는 일반적인 방법입니다. 일반적으로 일련의 JAR 파일 이름과 디렉토리 이름입니다. 컴파일러와 런타임 시스템에서 사용하는 클래스 경로 는 동일 할 필요 는 없지만 , 특히 작은 프로젝트의 경우 일반적으로 이어야합니다 .

Buildpath는 표준 Java 용어가 아닙니다. 일반적인 IDE가 응용 프로그램을 구성하는 "프로젝트"간의 관계를 지정하는보다 풍부한 방법을 가리키는 용어입니다. IDE는이를 사용하여 Java 코드를 컴파일하기위한 클래스 경로 및 소스 경로와이를 실행하기위한 클래스 경로를 파악합니다. IDE는 또한 빌드 경로를 사용하여 코드 및 해당 종속성을 WAR 파일로 패키징하는 방법을 파악합니다.

예를 들어, 프로젝트의 Eclipse 빌드 경로에는 종속 된 다른 프로젝트가 포함되고 프로젝트가 포함하거나 의존하는 추가 라이브러리 JAR이 나열됩니다. 또한 다운 스트림 프로젝트가 의존 할 수있는 현재 프로젝트의 패키지를 나열합니다.

(프로젝트에 Maven을 사용하는 경우 IDE 빌드 경로 메커니즘은 POM 파일에 선언 된 종속성에 대한 보조입니다. 예를 들어 Eclipse를 m2eclipse와 함께 사용하면 빌드 경로가 POM 파일에서 합성됩니다.)


클래스 경로는 런타임에 컴파일 된 클래스 및 리소스를로드하는 데 사용됩니다.

빌드 경로는 컴파일 타임에 프로젝트를 빌드하는 데 필요한 종속성을 찾는 데 사용됩니다.


각 Java 프로젝트에는 프로젝트를 컴파일하는 데 필요한 모든 종속성을 지정하는 자체 빌드 경로가 있습니다. 이러한 종속성은 작업 공간의 다른 Java 프로젝트, Java 아카이브 .jar 파일 또는 .class 파일이 포함 된 폴더에서 올 수 있습니다.

CLASSPATH 환경에서는 .class 파일 만 지정해야합니다 (예 : jar, zip 파일 – jar, zip 파일에는 Java 클래스 만 있음). 즉, JVM (Java Virtual Machine)이 Java 클래스 파일을 찾는 데 도움이됩니다.

또한 Spring MVC 프로젝트의 src 폴더 아래에 파일을 생성하려면 어떻게해야합니까? File 객체를 사용하여 만들면 C : \ SpringSourceTool ... 안에 파일이 생성됩니다.

JVM이 시작된 곳이며, 다른 곳에서 파일을 만들려면 여기에서 상대 경로를 사용하십시오.

자세한 내용은 이것이것을 참조하십시오 .


Andreas_D의 답변에 추가 하여 IDE / 컴파일러가 코드에서 사용하는 외부 패키지 및 클래스를 찾는 데 필요한 빌드 경로 를 설명하고 싶습니다 . 이를 '종속성' 이라고도 합니다.

NB : 이러한 외부 패키지는 압축 된 .jar 파일 내에 패키징되거나 실제로 '라이브러리' 안에 패키징 된 여러 jar 파일이있을 수 있습니다 . 라이브러리 또는 라이브러리 그룹은 종종 '프레임 워크'를 구성 합니다.

코드에 다른 사람이 작성한 코드가 필요한 경우 명령을 사용하여 클래스로 가져올 수 있습니다 import. 그러나 컴파일러 또는 IDE가 해당 클래스의 위치를 ​​알아야하기 때문에이 명령 자체로는 충분하지 않습니다. 빌드 경로 에 지정 합니다 .

classpath다른 한편으로는 코드의 실제 실행 중에 종속성을 찾을 수있는 응용 프로그램을 실행하는 JVM을 알려줍니다.

또한 참고 : Classpath는 JVM에서 사용하기위한 것입니다.

Buildpath는 IDE / 컴파일러에서 사용하기위한 것이며 개발 환경에서 클래스 경로를 구성하는 수단입니다. IDE를 통해 빌드 경로를 구성 할 때 .classpath라는 프로젝트에 숨겨진 파일도 구성하게됩니다. 배포시 JVM에 클래스 경로를 제공하는 데 사용됩니다.


build path 프로젝트를 빌드하기 위해 컴파일 시간 동안 IDE에서 사용됩니다.

Environment variable 운영 체제 (OS)에서 실행되는 모든 프로세스에서 액세스 할 수있는 전역 시스템 변수입니다.

PATH하고 CLASSPATH있습니다environment variables

PATH: 디렉토리 목록을 유지합니다. OS는 PATH항목에서 Java Compiler ( javac) 및 Java Runtime ( java) 같은 실행 가능한 프로그램을 검색합니다 .

CLASSPATH: 디렉토리 목록 (많은 Java 클래스 파일 포함 .class) 및 JAR 파일 (Java 클래스의 단일 파일 아카이브 .jar)을 유지합니다. Java 컴파일러 및 Java 런타임 CLASSPATH은 프로그램에서 참조되는 Java 클래스 항목을 검색합니다 .

사용자 클래스 검색 경로 (줄임말 CLASSPATH) : 다음 순서로 결정됩니다.

  1. 기본값은 current working directory (.).
  2. 의 항목 classpath environment variable은 기본값을 재정의합니다.
  3. 환경 변수 를 재정의 하는 -cp(또는 -classpath) 명령 줄 옵션의 항목 classpath.
  4. -jar위의 모든 항목을 재정의하는 런타임 명령 줄 옵션 입니다.

여기에서 더 많은 것을 읽으 십시오

참고 URL : https://stackoverflow.com/questions/3529459/what-is-the-difference-between-class-path-and-build-path

반응형