如何在Runnable Jar中设置config.ini文件的路径?

时间:2015-06-08 17:14:11

标签: java jar yajsw

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

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

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

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

因为.ini文件将位于.jar的同一文件夹中,但不起作用。

有人知道我该如何处理这个问题?

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

3 个答案:

答案 0 :(得分:1)

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

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

此致     托马斯

答案 1 :(得分:0)

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

Class.getResourceAsStream("的config.ini&#34);

如下所述:

How do I access a config file inside the jar?

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

答案 2 :(得分:0)

以这种方式找到解决方案:

假设config.ini与.jar

的文件夹相同
File pathJAR = new File(Main.class.getProtectionDomain().getCodeSource().getLocation().toURI());

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

不是那么美丽,但是有效。