【发布时间】:2012-08-29 10:54:04
【问题描述】:
我正在尝试在具有多个依赖项的巨型命令行应用程序中获取当前用户路径。每次一个“。”使用时,它给了我应用程序路径(jar 所在的位置),而不是当前的用户路径(正在进行调用的位置)。
所以,当它运行时:
File file = new File(".");
System.out.println(file.getCanonicalPath());
给我应用程序所在的路径。
但是当我创建一个单独的小应用程序并使用相同的代码时。从不同的目录调用 jar,它会给出当前用户路径。
我正在使用 JSAP 命令行解析器来处理命令行参数,其作用方式相同。如何解决?我希望我的大应用程序获取当前用户路径,而不是应用程序路径。
什么会导致他们的行为不同?
【问题讨论】:
-
当前用户路径是指用户启动应用程序的位置,即他调用
java -jar ./path/to/app/app.jar的位置? -
是的,我想要用户调用 jar 文件的目录。它似乎在一个小的独立应用程序中工作。不是大应用程序,即使我将代码插入到应用程序主体的第一行。
标签: java file command-line java-io filepath