首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在可运行的Jar中设置config.ini文件的路径?

如何在可运行的Jar中设置config.ini文件的路径?
EN

Stack Overflow用户
提问于 2015-06-09 01:14:11
回答 3查看 1.8K关注 0票数 0

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

代码语言:javascript
复制
Path configFile = Paths.get("D:\\Folder\\config.ini");

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

代码语言:javascript
复制
Path txtParametro = Paths.get("\\config.ini");

因为.ini文件将位于.jar的同一文件夹中,但无法正常工作。

有人知道我怎么处理这件事吗?

我想到了环境变量...但必须手动完成,这不是一种选择。

EN

回答 3

Stack Overflow用户

发布于 2015-06-09 01:59:38

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

代码语言:javascript
复制
File file = new File("D:\\Folder\\config.ini");
if (!file.exists()){
    file.createNewFile();
}

你好,托马斯

票数 1
EN

Stack Overflow用户

发布于 2015-06-09 01:56:00

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

Class.getResourceAsStream("config.ini");

如下所述:

How do I access a config file inside the jar?

如果不在罐子里,请让我们知道。

票数 0
EN

Stack Overflow用户

发布于 2015-06-09 02:58:17

找到了一个解决方案,就是这样:

假设config.ini与.jar在同一文件夹中

代码语言:javascript
复制
File pathJAR = new File(Main.class.getProtectionDomain().getCodeSource().getLocation().toURI());

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

不是很漂亮,但很管用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30715263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档