【问题标题】:Java + Eclipse SWT project, trying to get folder path into the "jar"Java + Eclipse SWT 项目,试图将文件夹路径放入“jar”
【发布时间】: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 中解压缩到程序安装的同一位置并动态指向它。

【问题讨论】:

  • @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提取到我的程序安装路径中并指向它。

标签: java eclipse swt


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-29
    • 2013-03-20
    • 1970-01-01
    • 2011-03-13
    • 2016-08-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多