使用OneJar时如何获取资源目录的URL?

时间:2014-01-26 09:43:37

标签: java jar resources onejar

我需要将根“some”传递给使用资源的一段代码。我知道这个“东西”不能是一个文件,因为doesn't work in a JAR。所以我传递了一个URL。

在开始使用OneJar之前,我转换了一个像

这样的网址
file:/some/path!/foo/bar/MyUrlSupplier.class

file:/some/path!/foo/images/

并将其用作根URL。有了OneJar,我得到了

onejar:foo.bar.MyUrlSupplier.class

并将其转换为

onejar:foo.images

但无论我对此网址做什么,都无效。我得到的最好的是由加载new ImageIcon(url)引起的堆栈跟踪:

Uncaught error fetching image:
java.lang.ClassCastException: sun.misc.Launcher$AppClassLoader cannot be cast to com.simontuffs.onejar.JarClassLoader
    at com.simontuffs.onejar.JarClassLoader.getByteStream(JarClassLoader.java:753)
    at com.simontuffs.onejar.Handler$1.getInputStream(Handler.java:50)
    at sun.awt.image.URLImageSource.getDecoder(URLImageSource.java:126)
    at sun.awt.image.InputStreamImageSource.doFetch(InputStreamImageSource.java:263)
    at sun.awt.image.ImageFetcher.fetchloop(ImageFetcher.java:205)
    at sun.awt.image.ImageFetcher.run(ImageFetcher.java:169)

0 个答案:

没有答案