4

こんにちは、Java プロジェクトを実行可能な jar ファイルとしてエクスポートしました。プロジェクト内で、いくつかのデータを含む Excel ファイルにアクセスしています。ファイルにアクセスしようとすると、Excel ファイルにアクセスできなくなりました。

私のプロジェクト構造は次のとおりです。
Java_Project_Folder
- src_Folder
- resources_Folder(Excel ファイルを含む)

次のようなExcelファイルにアクセスしています

FileInputStream file=new FileInputStream(new File(System.getProperty("user.dir")
+File.separator+"resources"+File.separator+"Excel.xlsx"));

次のように使用してこのファイルにアクセスしようとしましたgetResourceAsStream

FileInputStream file=(FileInputStream) this.getClass().getResourceAsStream
("/resources/Excel.xlsx");

しかし、私はヌル例外です。誰が助けることができますか?

4

4 に答える 4

2

最初のステップは、Excel ファイル自体をプロジェクトに含めることです。表示されているようにリソース フォルダーを作成できますが、これが確実に jar に含まれるようにするには、リソース フォルダーをソース コード ファイルと共に追加して、jar に組み込まれるようにします。

それで

InputStream excelContent = this.getClass().getResourceAsStream("/resources/Excel.xlsx");

動作するはずです。少なくとも 1 つの投稿から、ClassLoader を使用すると、先頭のスラッシュも混乱する可能性があります。

getClass().getResourceAsStream("/a/b/c.xml")  ==> a/b/c.xml
getClass().getResourceAsStream("a/b/c.xml")  ==> com/example/a/b/c.xml
getClass().getClassLoader().getResourceAsStream("a/b/c.xml")  ==> a/b/c.xml
getClass().getClassLoader().getResourceAsStream("/a/b/c.xml")  ==> Incorrect

ref: getResourceAsStream は新しい環境で失敗しますか?

また、Eclipseでは、次のようにリソースフォルダーをソースフォルダーとして設定できます。

Eclipse プロジェクトのプロパティで、Java ビルド パスに移動し、ソースを選択して、必要なすべてのソース フォドラーが (ソース フォルダーとして) 追加されているかどうかを確認します。一部が不足している場合は、[ソースを追加...] ボタンを使用して手動で追加してください。

ref: Eclipse での Java リソース フォルダー エラー

于 2013-07-21T17:03:06.957 に答える