gpt4 book ai didi

java - 加载分发 jar 外部的文件

转载 作者:行者123 更新时间:2023-11-29 06:04:01 25 4
gpt4 key购买 nike

我编写了一个 Java 程序,我将其打包并从 JAR 文件运行。我需要一些用户可更改的配置文件,它们只是文本行:

键=值

格式。为了加载这些文件,我使用了描述的类 here .当我通过 Netbeans IDE 运行我的程序时,一切正常,因为我在项目属性中包含了我存储配置文件的目录。

当我将应用程序构建到 JAR 文件中时,问题就来了。因为我希望配置文件是用户可编辑的,所以我将它们保存在 JAR 外部但位于同一目录中,但是现在当我从命令行运行我的应用程序时,它找不到配置文件。如果我手动将文件添加到 ROOT 文件夹中的 JAR 文件,那么一切都很好。

那么我如何告诉 Java 在 JAR 之外寻找我的可加载文件呢? -classpath 选项无效。

最佳答案

那是因为加载它们的方式要求当从 jar 运行时它们在 .jar 中,否则在项目目录中;它依靠类加载器告诉它在哪里可以找到文件。

如果你想在 .jar 之外打开一个文件,你只需要将它作为一个 File 打开并读入。

我们解决这个问题的方法之一是将外部文件名作为命令行上的一个选项(例如 java -jar myJar.jar -f filename)。这允许您明确说明文件所在的位置。然后,您可以决定是否也查看默认位置,或者如果文件未在命令行中指定,则查看 .jar 内部。

关于java - 加载分发 jar 外部的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9142571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com