gpt4 book ai didi

java - 获取当前用户的路径而不是java中的应用程序路径

转载 作者:行者123 更新时间:2023-11-29 08:04:24 24 4
gpt4 key购买 nike

我正在尝试在具有多个依赖项的巨型命令行应用程序中获取当前用户路径。每次一个“.”使用时,它为我提供了应用程序路径(jar 所在的位置),而不是当前用户路径(进行调用的位置)。

所以,当它运行时:

File file = new File(".");
System.out.println(file.getCanonicalPath());

给我应用程序所在的路径。

但是当我创建一个单独的小应用程序并使用相同的代码时。从不同目录调用 jar,它提供当前用户路径。

我正在为命令行参数使用 JSAP 命令行解析器,它的行为方式相同。如何解决?我希望我的大应用程序获取当前用户路径,而不是应用程序路径。

什么会导致他们的行为不同?

最佳答案

我认为您会发现启动“大型应用程序”的批处理文件(/shell 脚本)在启动 Java 之前将目录更改为主 jar 文件的目录,这就是为什么您的简单测试应用程序返回用户的工作new File(".") 的目录,而大型应用程序返回 jar 文件的目录。

尝试在批处理文件中尽早存储用户的 CWD,然后将其传递给 Java:

set savedcwd=%cd%
... later on ...
java "-Dsavedcwd=%savedcwd%"

然后在你的应用程序中

String savedcwd = System.getProperty("savedcwd");

关于java - 获取当前用户的路径而不是java中的应用程序路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12269262/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com