【问题标题】:NPE while try to get Resource in jarNPE同时尝试在jar中获取资源
【发布时间】:2020-03-19 13:35:14
【问题描述】:

我尝试了很多变体,但我找不到正确的。

我有类似的东西

在我由 Maven 创建的 jar 中,我可以看到

这是我的类文件夹。而且,顺便说一句,如果我在 IDEA 中启动程序,而不是从控制台,路径 没有任何异常@

在这里,我处于调试模式,启动我的 jar 尝试查看,问题出在哪里。 如果我执行 'file.exists()' 这将是错误的,但文件在里面。我认为,这个问题是因为路径中的“.jar!\”,但我不知道如何删除它。

反正我试过绝对和相对路径,我试过了

Thread.getCurrentThread.getContextLoader.getResource()
GUI.class.getResource()
GUI.class.getClassLoader.getResource()

没什么帮助

【问题讨论】:

    标签: java maven


    【解决方案1】:

    您不能使用File 打开 jar 文件中的资源。文件只能与普通文件和目录一起使用。

    注意:在 IDE 中使用 File 可以正常工作,因为所有文件还没有打包到 jar 文件中。但是打包后程序会崩溃。

    一旦您找到资源,例如。 URL res = GUI.class.getResource("/rxtx64/myres.dll") ,您可以将该资源作为流打开 InputStream is = res.openStream();

    另请参阅相关答案Utils to read resource text file to String (Java)How to read a text-file resource into Java unit test?

    【讨论】:

    • 那么,我现在是否应该不只是从一个目录复制到另一个目录,现在,我必须读取 InputStream,然后将该 Stream 写入其他文件夹?
    猜你喜欢
    • 1970-01-01
    • 2014-02-03
    • 2014-12-20
    • 2011-04-19
    • 2021-07-30
    • 2015-07-26
    • 2015-05-10
    • 2017-01-20
    • 1970-01-01
    相关资源
    最近更新 更多