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

Java 使用OneJar时如何获取资源目录的URL?,java,jar,resources,onejar,Java,Jar,Resources,Onejar,我需要将根“something”传递给一段使用资源的代码。我知道这个“东西”不可能是文件,因为这个。所以我要传递一个URL 在开始使用OneJar之前,我将URL转换为 file:/some/path!/foo/bar/MyUrlSupplier.class 进入 并将其用作根URL。有了OneJar我就有了 onejar:foo.bar.MyUrlSupplier.class 并将其转化为 onejar:foo.images 但不管我用这个URL做什么,都没用。我得到的最好结果是加载新的

我需要将根“something”传递给一段使用资源的代码。我知道这个“东西”不可能是文件,因为这个。所以我要传递一个URL

在开始使用OneJar之前,我将URL转换为

file:/some/path!/foo/bar/MyUrlSupplier.class
进入

并将其用作根URL。有了OneJar我就有了

onejar:foo.bar.MyUrlSupplier.class
并将其转化为

onejar:foo.images
但不管我用这个URL做什么,都没用。我得到的最好结果是加载新的图像图标(url),导致堆栈跟踪:

onejar:foo.images
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)