【问题标题】:Java applet from jarjar 中的 Java 小程序
【发布时间】:2012-02-17 09:38:21
【问题描述】:

没有运气通过我在谷歌上找到的东西让它工作。

【问题讨论】:

  • 1) 如果 Jar 条目仅包含图像,请确保将其设置为“无压缩”。 Zip(在 Jar 中使用)压缩对图像几乎没有任何作用。 2)我建议将类放入使用标准压缩的单独 Jar 中。它们将被压缩得更小,JRE 只需要与服务器建立一个连接即可获得它们。为什么您想将小程序放入 Jar 中?

标签: java jar applet


【解决方案1】:

您可以使用 ClassLoader.getResource(String) 加载类路径上可用的任何资源,您的 jar 将成为该资源的一部分

您可以使用Class.getClassLoader() 获取对相关ClassLoader 对象的引用

ClassLoader cl = MyClass.class.getClassLoader();

如果您的图像被命名为myimage.png 并且在您的 jar 中名为 images 的目录中,您可以像这样获取图像。

URL url = cl.getResource("images/myimage.png");

然后您可以使用 URL 在内存中创建图像对象。

Image i = Toolkit.getDefaultToolkit().createImage(url);

【讨论】:

  • 最好链接到最新版本的JavaDocs。我已将您的答案编辑为指向 J2SE 7。有关获取最新文档链接的提示,请参阅 point 2 of advantages。为答案 +1。
  • 谢谢。美丽的。顺便说一句,有没有类似的方法来处理音频文件? Toolkit 似乎没有涵盖它。
  • 我建议看看这个问题stackoverflow.com/questions/26305/how-can-i-play-sound-in-java。值得注意的是,如果您要使用的方法不接受 URL 对象,但将采用 InputStream。您可以使用 URL 对象通过调用 openStream() 方法来获取原始的 InputStream。然后,您可以将此字节流传递给您需要的任何内容。
【解决方案2】:

Java 网站上How to Use Icons 的教程可能对您有用。

你会做这样的事情:

java.net.URL imgURL = this.getClass().getResource(path);

getResource() 方法使用与 ClassLoader 为类定义的相同加载规则。

【讨论】:

    猜你喜欢
    • 2011-02-28
    • 1970-01-01
    • 2015-03-05
    • 2011-06-30
    • 2013-07-27
    • 2011-08-11
    • 2014-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多