【问题标题】:modify properties file in META-INF修改 META-INF 中的属性文件
【发布时间】:2011-03-12 21:35:21
【问题描述】:

我正在使用 maven 并将属性文件存储在 src/main/resources 中,我可以很好地阅读如下:

properties.loadFromXML(this.getClass().getClassLoader().
                        getResourceAsStream("META-INF/properties.xml");

当它被打包成一个jar时,是否可以写入这个文件?我尝试了以下方法:

properties.storeToXML(new FileOutputStream(new File(this.getClass().getClassLoader().
                        getResource("META-INF/properties.xml").toURI())), "");

这在 Eclipse 中有效,因为它会将文件保存到 target/classes/META-INF,但在打包为 jar 时却没有,所以有可能实现同样的事情吗?

【问题讨论】:

    标签: java maven-2 properties jar


    【解决方案1】:

    当它被打包成一个jar时,是否可以写入这个文件?

    简短回答:不,不可能,jar 文件是文件,而不是目录。实际上,您通常不会将属性文件写回 jar 文件。

    您应该将该属性文件放在本地文件系统的类路径中,在 JAR 之外。

    【讨论】:

      【解决方案2】:

      总是可以通过解包、重写和重新打包来修改打包文件。有时这是最简单的方法。

      Jar 文件本质上是重命名的.ZIP 文件。 Java 具有用于访问 .Zip 文件中的文件的类,您可以(如果有足够的动机)为自己编写一个程序来执行此操作。

      另外,我很确定有 ant 任务也可以做到这一点(想想对 jar 任务的创造性使用),并且有 POM 插件可用于从 Maven 运行 ant 任务。

      【讨论】:

        猜你喜欢
        • 2018-01-27
        • 1970-01-01
        • 1970-01-01
        • 2020-11-03
        • 2016-10-02
        • 2014-08-14
        • 1970-01-01
        • 1970-01-01
        • 2010-11-11
        相关资源
        最近更新 更多