【发布时间】:2013-09-23 07:45:03
【问题描述】:
我是 Java 新手,在将应用程序导出到可运行的 jar 时遇到问题。 我的应用程序使用 Saxon 运行一些转换,并且我希望样式表曾经位于可运行的 jar 中。
现在我在 Eclipse 的项目中有一个子文件夹,我正在使用该路径访问样式表。 但是,一旦我将项目导出为该 jar 中的可运行 jar,所有样式表都与使用的库处于同一级别(找不到子文件夹。)
应用程序还在 cwd 中搜索该子文件夹,当然在那里找不到。
如何打包样式表并在 jar 中正确访问它们?
//更新:
我想我走得更远了。
我在 src 下创建了一个子文件夹,并将所有样式表放在那里。我像这样访问它们:
xsltexps = comp.compile(new StreamSource(new File(this.getClass().getResource("/stylesheets/" + stylesheets).toURI())));
如果我在 Eclipse 中运行它,一切正常。当我将它导出为可运行的 jar 并运行它时,我得到以下异常:
线程“main”中的异常 java.lang.reflect.InvocationTargetException 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(未知来源) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源) 在 java.lang.reflect.Method.invoke(未知来源) 在 org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
原因:java.lang.IllegalArgumentException:URI 不是分层的 在 java.io.File.(Unknown Source)
我什至不知道这意味着什么。
【问题讨论】:
标签: java eclipse deployment jar executable-jar