2010-03-06 38 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

相关问题