【发布时间】:2013-12-08 16:44:20
【问题描述】:
我在其类路径中的 abc.jar 中有一个文件 X.json。 abc.jar 中有一个方法 readFile 读取文件为
URL url = Abc.class.getClassLoader().getResource("X.json");
File file = new File(url.toURI());*
如果我从 jar 的上下文(即 abc.jar 中某个文件中的 main 方法)运行它,它会很好读
但是当从 abc.jar 外部从其他代码调用 readFile 时,它会失败并显示 java.lang.IllegalArgumentException: URI is not hierarchical
如何通过从 jar 的上下文之外调用方法 readFile 来获取 File 对象?
【问题讨论】:
-
你为什么不发布堆栈跟踪?
-
一个文件代表文件系统上的一个路径。 jar 中的文件不在文件系统上。因此,无论您从哪个类执行此代码,它都没有任何意义,也不会工作。要读取类路径中 jar 中的文件,请使用
Class[Loader].getResourceAsStream()。
标签: java file embedded-resource