首页 > 解决方案 > 使用 jar 通过给定路径创建目录和文件

问题描述

我有一个 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

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

标签: javajarlog4j2

解决方案


您的程序可能使用相对路径,因此当您从不同位置运行程序时,它将读取相对于自身的目录。在运行时提供路径作为用户输入或设置 jar 的绝对路径。


推荐阅读