我正在java中执行一个程序,它将在可运行的JAR中导出并在Windows中作为服务使用YAJSW执行,我必须读取一个config.ini
文件,该文件具有执行的重要参数,但是我设置固定路径:
Path configFile = Paths.get("D:\\Folder\\config.ini");
问题在于我不知道它将在最终用户PC上执行的路径。 我试过这个:
Path txtParametro = Paths.get("\\config.ini");
因为.ini文件将位于.jar的同一文件夹中,但不起作用。
有人知道我该如何处理这个问题?
我想到了环境变量......但是必须手动执行它,不是一种选择。
答案 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”。
不是那么美丽,但是有效。