相关疑难解决方法(0)

Java Swing:在Jar中显示图像

从eclipse运行Java应用程序时,我的ImageIcon显示得很好.

但是在创建了一个jar之后,图像的路径显然被搞砸了.

有没有办法在运行时从jar中提取图像,以便我可以打开它?或者,有更好的方法吗?

如果可能的话,我想分发一个jar文件.

java swing embedded-resource imageicon

43
推荐指数
3
解决办法
4万
查看次数

在jeditorpane上显示图像(java swing)

我有一个通过这种方式创建的JEditorPane:

JEditorPane pane = new JEditorPane("text/html", "<font face='Arial'>" + my_text_to_show + "<img src='/root/img.gif'/>" + "</font>");
Run Code Online (Sandbox Code Playgroud)

我将此窗格放在JFrame上.

文字显示正确,但我看不到图片,只有一个正方形表示应该有一个图像(即:未找到图片时浏览器显示的"破碎图像")

java swing image jeditorpane

7
推荐指数
2
解决办法
2万
查看次数

是否可以/如何在JAR中嵌入和访问HTML文件?

我现在有点受阻:我写了一个非常复杂的Java桌面应用程序(没有Applet/Web App!),它有自己的"用户手册".本手册包含一些HTML和JPG文件.本手册使用JEditorPane显示在我的应用程序的"帮助菜单"中.

到现在为止还挺好.只要我使用Eclipse启动Programm,这种方法就可以正常工作.只要我将部署版本创建为可运行的jar(使用launch4j将其包装到.exe中),HTML"Viewer"就无法显示用户手册(图像丢失).

我明白为什么会发生这种情况,但我不知道如何解决/规避这个问题.

我的应用程序通过getClass().getResource()加载其资源(属性文件,图标等).例子:

this.setIconImage(new ImageIcon(getClass().getResource("/images/dialog-question.png")).getImage());

stream = new BufferedInputStream(MABIUpdater.class.getResourceAsStream("/settings.properties"));
Run Code Online (Sandbox Code Playgroud)

就像我之前说的那样,这确实很有效(从Eclipse OR中启动App作为包装的可执行文件或runnable-jar.

所以我试图像这样访问我的HTML"手册":

File manual = new File(getClass().getResource("/manual/help.html").toURI());

jEditorPane.setPage(manual.toURI().toURL());
Run Code Online (Sandbox Code Playgroud)

这不起作用.通过Eclipse启动程序我看到手册但缺少图像.通过jar/exe启动它我得到一个空框架.

那么如何实现这一目标还有什么"诀窍"呢?我猜一个问题是HTML页面本身,因为它无法访问该jar中的链接图像.这是一个非常小的HTML文件示例(无法使用图像):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<html lang="de">
    <head>
        <title>Manual</title>
    </head>
    <body>
        <h1>Example: </h1>
        <p>fubar</p>
        <img style="display: block; text-align: center;" src="../manual/img/Shot01.png" width="666" height="644" border="0" alt="Bildtext">
        <p><a href=\"http://www.google.com/\">blablubb</a></p>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我希望我的问题很明确,有人有想法;).

编辑:所有必需的HTML文件和图像都在JAR文件/类路径中.(只是为了让这个更清楚)

html java swing jar jeditorpane

4
推荐指数
1
解决办法
4721
查看次数

标签 统计

java ×3

swing ×3

jeditorpane ×2

embedded-resource ×1

html ×1

image ×1

imageicon ×1

jar ×1