1

私は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としてエクスポートして実行すると、次の例外が発生します。

スレッド「メイン」での例外 java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58) の java.lang.reflect.Method.invoke(不明なソース)
原因: java.lang.IllegalArgumentException: URI が Java で階層化されていません。 io.File.(不明なソース)

それが何を意味するのかさえわかりません。

4

1 に答える 1