내 프로젝트 /src/main/ressources/Mylib
에서 Eclipse 에 있는 폴더에 액세스하면 문제 없이 잘 작동하지만 프로젝트를 .jar 파일로 내보낼 때 작동하지 않습니다.
버그가 있는 코드 줄:
File fi = new File(Testp.class.getClassLoader().getResource("Mylib/").getFile());
그리고 그것은이 버그를 제공합니다 :
Exception in thread "main" java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:61)
Caused by: java.lang.NullPointerException
at com.myproject.Testp.main(Testp.java:73)
... 5 more
클래스 경로 리소스 폴더에 있는 모든 파일을 가져오시겠습니까? 이 예를 찾았습니다 .
private static File[] getResourceFolderFiles (String folder) {
ClassLoader loader = Thread.currentThread().getContextClassLoader();
URL url = loader.getResource(folder);
String path = url.getPath();
return new File(path).listFiles();
}
나는 그것을 테스트했고 System.out.println(Arrays.toString(getResourceFolderFiles("foldername/")));
작동합니다. 그러나 폴더는 클래스 경로에 있어야 합니다!
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다