【问题标题】:Creating and executable JAR file that uses an external XML file创建使用外部 XML 文件的可执行 JAR 文件
【发布时间】:2013-05-07 15:46:01
【问题描述】:

我在 Eclipse 中有一个 java 应用程序,它使用这样的 eml 文件

File matches = new File("matches.xml");

该文件与所有其他类一样位于默认包中。当我创建 JAR 时,它与它捆绑在 XML 文件中。我的应用程序要求我能够更改 XML 文件。如何设置它以便 JAR 可以在其外部引用 XML 文件?

【问题讨论】:

    标签: java file jar embedded-resource


    【解决方案1】:

    我的应用程序要求我能够对 XML 文件进行更改。

    然后您需要从 Jar 中提取它并将其保存在本地文件系统的某个位置。

    更多详情请见How can an app use files inside the JAR for read and write?

    【讨论】:

      【解决方案2】:

      如果您使用的是new File("matches.xml"),则根本不会使用 jar 文件中的文件。它只会查看外部文件系统。

      如果您需要能够使用存在的外部文件,或者 jar 文件中的版本作为备用,您需要测试文件的存在 (File.exists()) 并使用 Class.getResourceAsStream("matches.xml")后备行为。

      【讨论】:

        【解决方案3】:

        由于您想将文件保留在jar之外并希望对其进行更新以便jar可以读取,因此您可以将文件放在jar所在的同一目录中并使用以下代码访问该文件

        FileInputStream file = new java.io.FileInputStream("matches.xml"); 
        

        所以这可以是目录结构。

        - matches\
            - matches.jar
            - matches.xml
        

        【讨论】:

        • 这是形成File 的一种非常脆弱的方式。它永远不会适用于小程序或应用程序。使用 JWS 或应用程序部署。从不是cd 的批处理文件启动到应用程序。目录..
        猜你喜欢
        • 1970-01-01
        • 2013-12-26
        • 1970-01-01
        • 2014-12-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-08
        • 1970-01-01
        相关资源
        最近更新 更多