Java + Eclipse SWT项目,尝试将文件夹路径放入“jar”

时间:2016-04-13 15:52:22

标签: java eclipse swt

我正在使用SWT在Eclipse中开发一个项目,其中界面显示在浏览器中,为此,我使用XULRunner(Firefox)而不是使用标准浏览器。

我想用内部的xurlrunner文件夹编译jar,所以我创建了一个名为“plugins”的源文件夹,并将xurlrunner文件夹复制到其中并得到了路径:

URL xulrunner = getClass().getClassLoader().getResource("xulrunner");
File file = new File(xulrunner.toURI());
System.setProperty("org.eclipse.swt.browser.DefaultType", "mozilla");
System.setProperty("org.eclipse.swt.browser.XULRunnerPath", 
        -> file.getAbsolutePath());

它有效,但只有在导出之前从Eclipse内部运行时,最大的问题是当我导出jar可执行文件时,JVM无法加载,当然,原因是file.getAbsolutePath()无法指向罐子里。

对于图像,我使用getResourceAsStream()并且在编译后它的效果非常好,但是当它将jar内部的文件夹路径转换为String时很难。

问题:

还有其他方法可以指向jar中可以转换为String的文件夹吗?

提案

如果没有办法将xurlrunner文件夹保存到jar中,我将创建一个安装程序,将其从zip解压缩到程序安装的同一位置并动态指向它。

1 个答案:

答案 0 :(得分:0)

SWT希望XULRunnerPath指向常规文件系统文件夹。在设置系统属性之前,必须将整个xulrunner文件夹解压缩到常规文件夹中。