jar 파일이있는 디렉토리가 있습니다. 둘 이상의 jar 파일에서 일부 클래스를 사용할 수 있습니다. 다른 시스템에서, 상기 코드를 실행하는 동안클래스 로더에 대한 설명이 필요합니다
List<URL> jarsToLoad = new ArrayList<URL>();
File jarDir = new File("Directory name having jar files");
for (File jarFile : jarDir.listFiles())
{
jarsToLoad.add(new URL("file", null, jarFile.getPath()));
}
Thread.currentThread().setContextClassLoader(new URLClassLoader(jarsToLoad.toArray(new URL[jarsToLoad.size()])));
jarDir.listFiles()는 다른 순서로 병을 나열한다. Test.class가 A.jar 및 B.jar에 존재하는 경우, Jar가 먼저 나열된 기준으로 B.jar 형식으로로드되는 일부 시스템에서 Test.class가 A.jar에서로드되는 경우 (JAVA API 설명서에 따르면 listFiles() 메서드는 특정 목록 순서를 보장하지 않습니다).
A.jar & B.jar가 모두 tomcat $ CATALINA_HOME/lib 디렉토리에있는 경우 jar tomcat이 Test.class를로드한다고 가정합니다.
이 특정 시나리오에서 tomcat이 jar 파일에서 클래스를로드하는 방법에 대한 설명이 필요합니다.
미리 감사드립니다.
감사를 알 필요가 전부입니다. 바람둥이 클래스 로더 동작을 복제하려고합니다. 나는 바람둥이가 그런 정렬을하고 있는지 알고 싶다. 그렇다면 그것들을 정렬하는 방법 (알파벳 순서 또는 다른 매개 변수를 사용하여 정렬하는 방법)은 무엇인가? – Cheran