从已安装的命令行程序中获取文件路径

时间:2015-02-12 13:03:54

标签: java command-line path

我有一个java程序,它被构建,打包为.exe可执行文件并放在另一个位置(就像安装的程序一样)。

该程序可在命令行中访问,因为它位于%PATH%变量上。

我希望用户能够“cd”到目录,并启动我的程序,使用相对文件名,例如 C:\ temp> programname.exe inputfile.txt

到目前为止一切顺利,尽管java假设相对文件“inputfile.txt”位于<installed.exe.location\inputfile.txt>

如何让java获取当前工作的命令行目录? 例如的 C:\ TEMP \ inputfile.txt

狩猎我尝试了以下内容:

String inputFile = (args[0]);
System.out.println("file path: " + new File(inputFile).getAbsolutePath());
System.out.println("1: " + Paths.get("."));
System.out.println("2: " + Paths.get(""));
System.out.println("3: " + new File("").getAbsolutePath());
System.out.println("4: " + new File(".").getAbsolutePath());
System.out.println("5: " + new File(".").getCanonicalPath());
System.out.println("6: " + new File("").getCanonicalPath());
System.out.println("7: " + System.getProperty("user.dir"));

产生:

file path: C:\program files\testprog\bin\testprog.exe\inputfile.txt
1: .
2:
3: C:\program files\testprog\bin\testprog.exe
4: C:\program files\testprog\bin\testprog.exe\.
5: C:\program files\testprog\bin\testprog.exe
6: C:\program files\testprog\bin\testprog.exe
7: C:\program files\testprog\bin\testprog.exe

如何让java获取 C:\ temp 目录?

1 个答案:

答案 0 :(得分:0)

在Launch4J中,有一个选项:

<chdir>.</chdir>

如果你删除了。它有效。

价: https://sourceforge.net/p/launch4j/discussion/332684/thread/bd4993f1/