Java 从已安装的命令行程序获取文件路径
我有一个java程序,它是构建的,打包成一个.exe可执行文件,并放置在另一个位置,就像安装的程序一样 此程序可以在命令行上访问,因为它位于%PATH%变量上 我希望用户能够将cd刻录到一个目录,然后启动我的程序,并使用相对文件名,例如C:\temp>programname.exe inputfile.txt 尽管java假定相对文件inputfile.txt位于 如何让java获取当前工作的命令行目录? e、 g.C:\temp\inputfile.txt 四处打猎我尝试了以下方法:Java 从已安装的命令行程序获取文件路径,java,command-line,path,Java,Command Line,Path,我有一个java程序,它是构建的,打包成一个.exe可执行文件,并放置在另一个位置,就像安装的程序一样 此程序可以在命令行上访问,因为它位于%PATH%变量上 我希望用户能够将cd刻录到一个目录,然后启动我的程序,并使用相对文件名,例如C:\temp>programname.exe inputfile.txt 尽管java假定相对文件inputfile.txt位于 如何让java获取当前工作的命令行目录? e、 g.C:\temp\inputfile.txt 四处打猎我尝试了以下方法: Stri
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目录?在Launch4J中,有一个选项:
<chdir>.</chdir>
如果您删除了。它起作用了
参考:
您的程序似乎将工作目录更改为自己的路径。你能给我们看一下代码吗?System.getPropertyuser.dir这就是你要找的吗?实际上已经没有代码了,这是一个缩减,所以它可以在主方法中工作。我在上面的代码中尝试了System.getPropertyuser.dir:为什么不使用System.getenvvariable\u名称获取环境值并在程序中使用它?