为了账号安全,请及时绑定邮箱和手机立即绑定

jar无法访问资源文件夹

jar无法访问资源文件夹

元芳怎么了 2023-11-10 15:56:06
在我的项目中,我访问 eclipse 中的文件夹,/src/main/ressources/Mylib它运行良好,没有任何问题,但是当我将项目导出到 .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
查看完整描述

1 回答

?
慕沐林林

TA贡献2016条经验 获得超9个赞

那么您想获取类路径资源文件夹中的所有文件吗?我找到了这个例子:

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/")));它有效。但你的文件夹必须位于类路径上!


查看完整回答
反对 回复 2023-11-10
  • 1 回答
  • 0 关注
  • 87 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信