Java 응용 프로그램을 -cp 명령 줄 스위치 (폴더 또는 jar 목록 제공)와 함께 실행하고 클래스를 구현하는 것과 기능상의 차이점이 있는지 알고 싶습니다 로더 (예 : URLClassLoader 클래스 사용)를 사용하여 클래스를로드합니다.실행중인 java -cp와 클래스 로더 구현 간의 차이점
예제 코드 :
// -cp approach
java -jar <myjar.jar> -cp ~/folder/with/jars
다른 방법 :
// URLClassLoader approach. urls is an array that points to the .jars under ~/folder/with/jars
URLClassLoader loader = new URLClassLoader(urls);
loader.findClass(...);
"하드 코딩 경로"- 프로그램에 대한 명령 줄 인수로 제공된다고 가정합니다. 그런 다음 그들은 하드 코딩되지 않습니다. 기능적으로 차이가 있습니까? (즉, 두 가지 경우 모두에서 동일한 클래스를로드 할 수 있으며 사용 가능한 URL은 같다고 가정합니다.) –
아, 내 부분에 짧은 시력 : P 나는 그렇게 생각하지 않습니다. 클래스가로드 된 후에는 클래스가 동일하게됩니다. – outlyer