我正在尝试访问我的jar文件中的目录。我想浏览目录本身内的每个文件。例如,我尝试使用以下方法:
URL imagesDirectoryURL=getClass().getClassLoader().getResource("Images");
if(imagesFolderURL!=null)
{
File imagesDirectory= new File(imagesDirectoryURL.getFile());
}
如果我测试此小程序,它将很好地工作。但是,一旦将内容物放入广口瓶中,并不是有几个原因。如果使用此代码,则URL始终指向jar外部,因此必须将Images
目录放在此处。但是如果我使用的话new File(imagesDirectoryURL.toURI());
,它不能在jar里面起作用,因为我得到了错误URI not hierarchical
。我确定该目录存在于jar中。我应该如何获得Images
罐子里的东西?
Jar中的路径是路径,而不是实际目录,因为您可以在文件系统上使用它们。要在Jar文件的特定路径中获取所有资源,请执行以下操作:
URL
指向罐。InputStream
从中获取URL
。ZipInputStream
从构造InputStream
。ZipEntry
,寻找与所需路径的匹配。
..当Applet不在罐中时,我仍然可以测试我的Applet吗?还是我必须编程两种方式来获取我的图像?
该ZipInputStream
文件系统上的目录不会松动资源工作。但是,我强烈建议您使用诸如Ant之类的构建工具来构建(编译/ jar /签名等)小程序。编写并检查构建脚本可能需要一个小时左右,但是此后您可以通过几次击键和几秒钟的时间来构建项目。
如果要测试我的Aplet,如果我总是必须提取并签名罐子,那会很烦人
我不确定你在那里的意思。“提取”从何而来?如果我不清楚,沙盒小程序可以通过这种方式从archive
属性中提到的任何Jar中加载资源。您可能要做的另一件事是将资源Jar与applet Jar分开。资源更改通常少于代码更改,因此您的构建可能可以采用一些捷径。
我想我确实必须考虑将我的图片放入jar之外的单独目录中。
如果您是在服务器上说的话,那么缺少服务器的帮助下将没有实用的方法来获取图像文件列表。EG有些服务器设置不安全,无法为没有默认文件(例如index.html)的任何目录生成基于HTML的“文件列表”。
我只有一个罐子,里面放着我的课程,图像和声音。
OK-考虑将声音和图像移到单独的Jar中。或者至少将它们“不压缩”地放入罐子中。尽管Zip压缩技术可以很好地与类配合使用,但是它们在压缩(否则已经压缩)媒体格式时效率较低。
我必须签名,因为我使用“首选项”类保存用户设置。”
Preferences
对于applet,还有其他替代方法,例如cookie。对于插件2体系结构小程序,可以使用Java Web Start启动小程序(仍嵌入在浏览器中)。JWS提供了PersistenceService。这是我的小演示。的PersistenceService。
说到JWS,这使我想到:您是否可以肯定,此游戏作为applet会比JFrame
使用JWS启动的应用程序(例如使用)更好。
小程序不会给您带来压力,PersistenceService
自Java 1.2引入以来,JWS就提供了小程序。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句