【发布时间】:2016-09-15 05:41:27
【问题描述】:
我正在使用 Jasper 库来调用 prolog 文件。调用是这样完成的:
sics = new SICStus();
sics.load( "/a/string/with/path/to/source.pl" );
我想要做的是生成一个包含源文件的 jar 可执行文件。问题是我找不到获取 jar 中包含的资源的路径的方法。到目前为止,我能够获取 jar 的 URL:
URL url = getClass().getResource( file_name );
String path = url.getPath();
问题是我如何给对象 "sics" 到 jar 中源文件 source.pl 的路径?
是什么让我明白了这个问题:
java中的文件只能代表直接文件系统文件,不能代表那些 在 zip/jar 档案中。 要解决这个问题: 尝试使用
getClass().getResourceAsStream()并使用它而不是File。
链接: URI is not hierarchical exception when running application from JAR
【问题讨论】: