我在 Eclipse 中有一个 java 应用程序,它使用这样的 eml 文件
File matches = new File("matches.xml");
该文件与所有其他类一样位于默认包中。当我创建 JAR 时,它与它捆绑在 XML 文件中。我的应用程序要求我能够更改 XML 文件。如何设置它以便 JAR 可以引用自身之外的 XML 文件?
我在 Eclipse 中有一个 java 应用程序,它使用这样的 eml 文件
File matches = new File("matches.xml");
该文件与所有其他类一样位于默认包中。当我创建 JAR 时,它与它捆绑在 XML 文件中。我的应用程序要求我能够更改 XML 文件。如何设置它以便 JAR 可以引用自身之外的 XML 文件?
如果您正在使用new File("matches.xml")
它,则根本不会使用 jar 文件中的文件。它只会查看外部文件系统。
如果您需要能够使用存在的外部文件,或者 jar 文件中的版本作为后备,您需要测试文件的存在 ( File.exists()
) 并Class.getResourceAsStream("matches.xml")
用于后备行为。
由于您想将文件保留在 jar 之外并希望对其进行更新以便 jar 可以读取,因此您可以将文件放在 jar 所在的同一目录中并使用以下代码访问该文件
FileInputStream file = new java.io.FileInputStream("matches.xml");
所以这可以是目录结构。
- matches\
- matches.jar
- matches.xml