本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

使用 webstart 时加载 svg 文件会出现问题

发布于2024-12-03 10:19     阅读(540)     评论(0)     点赞(11)     收藏(0)


我开发了一个应用程序并想将其放到网上。当我生成一个普通的 jar(不用于 Web Start)时,该应用程序运行正常。

我生成了一个 JNLP 文件,用于通过 Netbeans 进行 Web 部署。当我尝试使用 Web Start 运行该应用程序时,出现以下异常:

file:/C:/Users/Stefan/git/yt/WV/dist/Wetenschappelijke_Vorming.jar!/res/loading.svg does    
not exist or could not be read java.net.MalformedURLException

导致问题的代码片段:

loading = this.loadShape(this.getClass().getResource("/res/loading.svg").getPath());

当我注释掉与我尝试加载的文件相关的所有代码时,Webstart 可以毫无问题地运行该应用程序。(我检查了 jar 并且文件位于它应该所在的位置!)

我是否需要引用 JNLP 文件中的图像?我有点困惑,一直在寻找解决方案,但似乎找不到。

这是生成的 JNLP 文件:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<jnlp codebase="file:/C:/Users/Stefan/git/yt/WV/dist/" href="launch.jnlp" spec="1.0+">
    <information>
        <title>Wetenschappelijke Vorming</title>
        <vendor>Stefan</vendor>
        <homepage href=""/>
        <description>Wetenschappelijke Vorming</description>
        <description kind="short">Wetenschappelijke Vorming</description>
    </information>
    <update check="always"/>
    <security>
        <all-permissions/>
    </security>
    <resources>
        <j2se version="1.5+"/>
        <jar href="Wetenschappelijke_Vorming.jar" main="true"/>
        <jar href="lib/controlP5.jar"/>
        <jar href="lib/core.jar"/>
        <jar href="lib/jsoup-1.7.2.jar"/>
        <jar href="lib/pdfbox-app-1.7.1.jar"/>
        <jar href="lib/mysql-connector-java-5.1.22-bin.jar"/>
        <jar href="lib/ESAPI-1.4.5a.jar"/>
        <jar href="lib/lucene-analyzers-common-4.2.0.jar"/>
        <jar href="lib/lucene-core-4.2.0.jar"/>
        <jar href="lib/lucene-demo-4.2.0.jar"/>
        <jar href="lib/lucene-queryparser-4.2.0.jar"/>
        <jar href="lib/commons-math3-3.1.1.jar"/>
        <jar href="lib/lucene-queries-4.2.0.jar"/>
        <jar href="lib/gson-2.2.3.jar"/>
        <jar href="lib/deploy.jar"/>
        <jar href="lib/jsse.jar"/>
        <jar href="lib/management-agent.jar"/>
        <jar href="lib/plugin.jar"/>
        <jar href="lib/resources.jar"/>
        <extension href="jnlpcomponent1.jnlp"/>
</resources>
    <application-desc main-class="visualisation.Application">
    </application-desc>
</jnlp>

解决方案


getPath()调用 返回的 URL的结果getResource()可能在您的文件系统上有效,但在其他地方无效。相反,请使用getResourceAsStream()来读取资源。



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.javaheidong.com/blog/article/694208/155942a6077352e0a0a6/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

11 0
收藏该文
已收藏

评论内容:(最多支持255个字符)