0

私は次の問題に直面しています。JavaプロジェクトにEclipseを使用していて、次の構造になっています。

  --> src
      --> package1
          ....
      --> package2
          ...

   -->dataFolder
       --> Folder1
            --> file1.xml
       --> Folder2
            file2.xml

私のJavaプロジェクトでは、dataFolderディレクトリ内のすべてのファイルを解析します。次のように、eclipseプロジェクトのルートディレクトリを使用できるため、これは問題ありません。

File dataStoreFolder = new File("dataFolder");
Some parsing......

しかし、プロジェクトを実行可能jarファイルとしてエクスポートすると、これらのファイルにアクセスできなくなります。もちろん、それはexec.jarファイルを置いたのと同じフォルダーにないためです。しかし、データを含むフォルダー全体をexec.jarファイルにコピーしたくありません。どういうわけかjarファイル内に入れることはできますか?(私はdataFolderをJavaビルドパスに追加することでそれを行いましたが、それでもEclipseのようには機能しません)

誰かが私を助けてくれますか?

4

2 に答える 2

3

When you're using a jar file, those files don't exist as files any more.

You can absolutely include the data in your jar file, but then you'll need to change the code which accesses it, too. Instead of creating a File object, you'll need something like:

InputStream input = Foo.class.getResourceAsStream("/dataFolder/Folder1/file.xml");

So you have two separable tasks:

  • Work out how to include the data folder within your jar file
  • Change your code to access the data appropriately
于 2012-07-23T11:37:14.693 に答える
0

はい、jarファイルに入れることができます。Eclipseの下にソースフォルダを作成するだけdataFolderで、Java以外のファイルがターゲットディレクトリにコピーされ、jarファイルに追加されます。

jarファイルに入ると、次のfile1.xmlようになります。

InputStream in = SomeClass.class.getResourceAsStream("/Folder1/file1.xml");
于 2012-07-23T11:39:43.450 に答える