小程序:在jar文件中加载不在主目录中的图像

时间:2011-12-07 20:39:58

标签: java html jar applet

这个标题可能听起来很混乱所以我会解释我的问题。 我正在将我的java应用程序转换为applet,它在Eclipse中工作正常,当我使用标签创建一个html文件时。但是当我将我的applet上传到google sites并通过html文件执行它时,程序本身加载正常,但它尝试从我自己的硬盘而不是从JAR文件加载其图像。我怎么能改变它?

HTML:

<applet
archive="https://sites.google.com/site/projectteagame/tea.jar"
code="ymte.core.Loader"
width=300
height=300> </applet>

编辑:

为了速度和轻松,我将所有文件保存在jar中。我获取图像的代码是:

img = ImageIO.read(Loader.class.getResourceAsStream("/res/object/ball.bmp"));

这适用于我的IDE,但不适用于在线使用

1 个答案:

答案 0 :(得分:-1)

您可以提供代码告诉我们您是如何获取图像的,但我想它并没有捆绑在jar中。一种方法是将jar放入你的包中并获得它:

  

Class.getResourceAsStream( “富”);

http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Class.html#getResourceAsStream(java.lang.String

然而,这有点花哨。一种首选方法是将图像放入项目中位于源外的目录中,如图像或资源,然后将其捆绑在applet的jar中。使用您最喜欢的构建工具(ant,maven,ivy)将图像包含在jar中。目录结构可以是这样的:

project
-src
-resources
 -<yourImage>

然后,您将使用相对路径将您的图像作为URL或文件访问。如果您提供更多代码,也许您可​​以获得进一步的帮助。

修改 的 您的资源就在您的applet中,您可以将其放在一个软件包中。然后,您可以在代码中进一步

Class.getResourceAsStream 

这就是你如何获得你的形象,因为它保证在你的类路径中。

基本上,如果你有这样的包结构:

  

项目src       com.foo.bar       com.foo.bar.stuff       com.foo.bar.resources          -yourImage          -其他的东西          -ResourceGetter.java

您可以在ResourceGetter中执行以下操作

  

Class.getResourceAsStream("yourImage");

这将为您提供图像处理,您可以像平常一样加载它。