0

我正在用java做一个程序,它将被导出到一个可运行的JAR中并使用YAJSW在windows中作为服务执行,我必须读取一个config.ini具有重要执行参数的文件,但我正在设置一个固定路径:

Path configFile = Paths.get("D:\\Folder\\config.ini");

问题是我不知道它将在最终用户电脑上执行的路径。我试过这个:

Path txtParametro = Paths.get("\\config.ini");

因为 .ini 文件将在 .jar 的同一文件夹中,但没有工作。

有人知道我该如何处理吗?

我想到了环境变量……但必须手动执行,这不是一种选择。

4

3 回答 3

1

您可以将文件设置为在特定位置创建,以便程序始终知道它的位置:

File file = new File("D:\\Folder\\config.ini");
if (!file.exists()){
    file.createNewFile();
}

问候,托马斯

于 2015-06-08T17:59:38.283 回答
0

如果文件是 JAR 的一部分,那么您可以像这样加载它:

Class.getResourceAsStream("config.ini");

如此处所述:

如何访问 jar 中的配置文件?

如果不在 A JAR 中,请告诉我们。

于 2015-06-08T17:55:59.823 回答
0

找到了解决方案,这样:

假设它config.ini在 .jar 的同一个文件夹中

File pathJAR = new File(Main.class.getProtectionDomain().getCodeSource().getLocation().toURI());

它返回我运行 jar 的路径"D:\Folder\name.jar",然后我用“config.ini”替换“name.jar”。

不是那么漂亮,但有效。

于 2015-06-08T18:58:16.513 回答