我正在用java编写一个程序,它将导出到一个可运行的JAR中,并使用YAJSW作为服务在windows中执行,我必须读取一个具有重要执行参数的config.ini文件,但我设置了一个固定路径:
Path configFile = Paths.get("D:\\Folder\\config.ini");问题是我不知道它将在最终用户pc上执行的路径。我试过这个:
Path txtParametro = Paths.get("\\config.ini");因为.ini文件将位于.jar的同一文件夹中,但无法正常工作。
有人知道我怎么处理这件事吗?
我想到了环境变量...但必须手动完成,这不是一种选择。
发布于 2015-06-09 01:59:38
您可以将文件设置为在特定位置创建,以便程序始终知道它将位于何处:
File file = new File("D:\\Folder\\config.ini");
if (!file.exists()){
file.createNewFile();
}你好,托马斯
发布于 2015-06-09 01:56:00
如果文件是JAR的一部分,那么您可以像这样加载它:
Class.getResourceAsStream("config.ini");
如下所述:
How do I access a config file inside the jar?
如果不在罐子里,请让我们知道。
发布于 2015-06-09 02:58:17
找到了一个解决方案,就是这样:
假设config.ini与.jar在同一文件夹中
File pathJAR = new File(Main.class.getProtectionDomain().getCodeSource().getLocation().toURI());它返回运行jar的路径"D:\Folder\name.jar",然后我将"name.jar“替换为"config.ini”。
不是很漂亮,但很管用。
https://stackoverflow.com/questions/30715263
复制相似问题