【问题标题】:Path to a resource inside a jar executable [duplicate]jar可执行文件中资源的路径[重复]
【发布时间】: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

【问题讨论】:

    标签: java jar


    【解决方案1】:

    如果我没有误解你的要求,我想这个问题已经回答了。请看这里: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

    【讨论】:

    • 是的,我看过所有这些帖子,尝试过他们提供的所有选项。这可能是我的错,但我发现这些答案要么试图解决问题,要么根本不够清楚。
    猜你喜欢
    • 2019-03-22
    • 2016-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-12
    • 2010-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多