【发布时间】:2016-08-25 20:40:11
【问题描述】:
我想编辑位于当前运行的 jar 中的配置文件。 有没有办法可以直接修改这个文件或从外部复制它?
【问题讨论】:
-
你不能。 jar 文件在运行时是只读的。配置文件应该存储在外部,尽管您可能在 jar 中有一个默认文件,如果没有指定外部文件,则使用它,和/或用于应用外部文件中未定义的值。
-
谢谢安德烈亚斯的回答。
我想编辑位于当前运行的 jar 中的配置文件。 有没有办法可以直接修改这个文件或从外部复制它?
【问题讨论】:
您不能像 cmets 中建议的 Andreas 那样修改在 runtime 上运行的 jar。我将在此处提供一个可能的替代方案来说明您可能需要此内容的原因,因此此问题不会出现在未回答的页面中。
为什么?
当
jar正在运行时(即,它正被JVM 使用),文件(归档>>file)被操作系统锁定。当任何文件被锁定(或标记为锁定)时,它就无法更改,换句话说,它与只读文件一样好。
为什么您可能需要这样做。
人们通常尝试写入
jar的原因是,他们想要一个他们想要使用绝对/相对路径的文件(参考jar文件)。
在这种情况下我们有什么选择?
所以,如果这是您的问题,您可以在
jar的位置创建一个目录并使用它。如果你的
jar位于C:\Users\<Something>\Desktop\testDir\,那么你在这个地方创建一个目录'conf' (C:\Users\<Something>\Desktop\testDir\conf\)。您可以在此目录中编写/创建文件并轻松地从代码中引用它们(参考当前工作目录的路径)。
【讨论】: