2016-08-29 16 views
0

IDEから実行すると完全に動作するプログラムがあります。 しかし、実行可能なjarファイルを作成すると、ソースフォルダのサブフォルダにある2つのPDFファイルを見つけることができません。JavaFXプログラムの作成後のPDFファイルへの参照

これらのファイルはどのように参照する必要がありますか?

マイプロジェクト構造は次のとおりです。
リソース(ソースフォルダ)
- PdfTemplates(通常のフォルダ)
- - myyntiPohja.pdf
- - ostoPohja.pdf

私はIDEからプログラムを実行します次の参照でjava.io.Fileを取得します。
ファイルofferDocument = new File( "resources/PdfTemplates/ostoPohja.pdf");
および
ファイルofferDocument = new File( "resources/PdfTemplates/myyntiPohja.pdf");

これは、エクスポート - >実行可能なJarファイルまたはbuild.fxbuild - > ant build.xmlのいずれかでプロジェクトをコンパイルして実行するまでうまく動作します。

誰かが問題を教えてください。

+0

問題はそのようなファイルがないことです。あなたのリソースはjarファイルにバンドルされているので、ファイルとして表現されていません。 –

答えて

0

new File("resources/PdfTemplates/ostoPohja.pdf")現在のフォルダにあるresourcesフォルダを検索し、その中にPdfTemplatesostoPohja.pdfを検索してください。

ダブルクリックすると、jarの横にフォルダ構造が作成されます。

その他のオプションでは、これらのファイルをjarファイルに埋め込むことができます(おそらく既にそうしています)。Thread.currentThread().getClassloader().loadResourceAsStream(("resources/PdfTemplates/myyntiPohja.pdf")のようにロードし、ファイルの代わりにこのストリームを使用する必要があります。

+0

これは機能しました。私はInputStreamのofferDocument = PdfPrinter.class.getClassLoader()。getResourceAsStream( "PdfTemplates/myyntiPohja.pdf")を使用しました。皆さん、ありがとうございました! – Hiltunea

0

pdfsの完全なディレクトリを使用できない理由はありますか?例:

C:/ユーザ/あなたが使用する必要があなたのユーザーネーム /Path/to/template.pdf

+0

私はJarファイルにPDFを含まない場合、これらのファイルをパブリックドライブに配置する必要があるため、ツールでパフォーマンスの問題が発生する可能性があります。 – Hiltunea

0

| NAME_OF_YOUR_CLASS | .class.getClass()getResourceAsStream( "PATH_TO_FILE_RELATIVE_TO_ROOT_OF_PROJECT"。 。

上記InputStreamオブジェクトを返すこれには同様に使用することができる:。

BufferedReaderのBR =新しいBufferedReaderの(新規のFileInputStream(*));

関連する問題