使用jar通过给定路径创建目录和文件

时间:2021-06-11 06:06:59

标签: java jar log4j2

我有一个 java maven 项目,它将 .json 文件转换为 .yaml,反之亦然。长话短说,我编写了方法,该方法使用 jar 实际所在的路径创建转换过程的结果目录。然后我创建了创建文件的方法,并将转换过程的结果写入/path_of_resulting_dir/file-name.json/.yaml。如果我在 IntelliJ idea 中从我的项目中运行 jar - 一切正常。但是,当我从桌面上的随机文件夹运行 jar 文件时,没有任何反应。

那么,我怎样才能正确地制作 jar 以知道是否有任何我应该转换的文件放在 jar 文件旁边(例如 C:\path_to_jar\SomeJarDir\jar.jar 所以文件在 SomeJarDir 中,有一个 jar),或者如果我从路径访问任何文件,我写为 jar 参数需要转换。

链接到 GitHub,我的代码放在哪里(旧版本,我没有尝试制作 jar 以知道从它放置的任何文件夹转换什么,只有当你在 IntelliJ idea 中运行 jar 时才有效):

https://github.com/foreverdumb/javaSprSum2021/tree/JavaSprSmrHmwrk/michaelProject

附言如何强制 log4j 在 jar 旁边创建日志文件?

1 个答案:

答案 0 :(得分:0)

你的程序可能使用了相对路径,所以当你从不同的位置运行你的程序时,它会读取相对于自身的目录。要么在运行时提供路径作为用户输入,要么设置 jar 的绝对路径。