我是一名 Apache Ant 新手,我创建了一个 Java 应用程序,其中包含许多文件,其中包括 sys.properties 文件。该文件的位置位于根目录中,为了被调用,代码中使用字符串“sys.properties”来定位该文件。它运行完美。
现在我已经使用 Apache Ant 创建了一个构建文件,该文件从应用程序中创建了一个 jar 文件。在我使用的代码中
<filelist dir="${basedir}" files="sys.properties"/>
当创建此 jar 文件时,它确实将新文件放置在 jar 文件的根目录中。
当我通过命令行运行时:
java -classpath C:\tmp\APP;doddle.jar; doddle.home.start
jar 应用程序似乎在寻找 sys.properties,但找不到它(doddle.home.start 类调用 sys.properties)。
知道问题出在哪里吗?提前致谢!
最佳答案
问题是 sys.properties
不再是一个文件,而是一个 jar 条目。
您可以通过 InputStream
访问它通过 SomeClass.class.getResourceAsStream("/sys.properties")
(有关如何处理流的信息,请参阅 the I/O tutorial)
关于java - 在 jar 文件中查找文件时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7232260/