2010-03-06 39 views
0

我的應用程序需要XML文件才能工作,甚至在沒有該文件的情況下甚至無法啓動。爲什麼我將應用程序捆綁爲JAR文件,只要將XML文件放在與JAR文件相同的目錄中,就可以正常工作。OS X上的應用程序包不起作用,文件尋址問題

當我將該項目導出爲OS X應用程序包時,該應用程序不起作用。如果我將XML文件複製到應用程序包所在的同一目錄中,它就可以工作。

所以我敢肯定,從我的Java代碼中訪問XML文件是一個小問題。我想將XML文件放入應用程序包中。只需將其複製到JAR文件所在的同一目錄中即可。

該文件或更好的文件是這樣編址的:doc = sax.build("file.xml");並直接位於我的項目文件夾中。 我正在使用Eclipse,並直接從Eclipse將項目導出爲應用程序包。 我也試過用OS X Jar Bundler,它可以提供相同的結果。

那麼,如何正確解決我的文件,以便我可以將它們放入應用程序包中?

任何幫助表示讚賞!非常感謝你!

回答

1

您很可能將其作爲物理文件讀取,它需要位於當前工作目錄中。

你有沒有考慮將它作爲資源讀取,而是通過類路徑找到它?

+0

我還沒有處理資源文件。有關如何做到這一點的任何建議,以及放置文件的位置? – Peter 2010-03-06 16:18:42

+0

您可能想要使用http://java.sun.com/j2se/1.4.2/docs/api/java/lang/ClassLoader.html#getResourceAsStream(java.lang.String) 請注意,要加載構建。 xml從根目錄而不是在執行加載的類旁邊,使用「/build.xml」。它可能在你的jar文件或你的文件系統中(如果你的類路徑中有「。」) – 2010-03-06 18:29:49

+0

對不起,我真的不知道該怎麼做。我知道我可以用getResource()或getResourceAsStream()方法讀取文件,但我仍然不知道如何訪問顯式文件以及將它放到我的項目文件夾中的位置。 正如我所說,我從來沒有這樣做過,我無法在網上找到任何有用的信息。 另一個問題是,我的XML文件在我的代碼中被修改,所以只有閱讀資源不足以解決我的問題。 – Peter 2010-03-06 20:14:27

相關問題