jar可执行文件内资源的路径

时间:2016-05-18 15:57:46

标签: java jar

我正在使用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();

问题是如何在jar中为对象" sics" 提供源文件 source.pl 的路径?

是什么让我理解了这个问题:

  

java中的文件只能代表直接文件系统文件,而不能代表文件系统文件   在zip / jar档案中。   要解决这个问题:   尝试使用getClass().getResourceAsStream()并使用{而不是File

链接: URI is not hierarchical exception when running application from JAR

1 个答案:

答案 0 :(得分:2)

如果我没有误解你的要求,猜猜这个问题已经回答了。请查看此处:How to get the path of a running JAR file?或此处How to get a path to a resource in a Java JAR file以及此处Loading a file relative to the executing jar file