【发布时间】:2016-04-14 00:45:15
【问题描述】:
我正在使用 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?
建议
如果没有办法将 xurlrunner 文件夹保存到 jar 中,我将创建一个安装程序,将其从 zip 中解压缩到程序安装的同一位置并动态指向它。
【问题讨论】:
-
您可能会从检查这两个问题中受益:stackoverflow.com/questions/36182101/… | stackoverflow.com/questions/36269693/…
-
@KenoClayton System.setProperty() 只接受字符串,如何将“InputStream getResourceAsStream”传递给它
-
使用
IOUtils.toString() -
@KenoClayton Scanner 而不是 IOUtils.toString,Scanner scanner = new Scanner(InputStream); scanner.useDelimiter("\\A");字符串 str =scanner.hasNext() ?扫描仪.next() : null;但不是我的情况,非常感谢你,我认为方法是将xurlrunner提取到我的程序安装路径中并指向它。