Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从已安装的命令行程序获取文件路径_Java_Command Line_Path - Fatal编程技术网

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

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

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

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

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

尽管java假定相对文件inputfile.txt位于

如何让java获取当前工作的命令行目录? e、 g.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目录?

在Launch4J中,有一个选项:

<chdir>.</chdir>
如果您删除了。它起作用了

参考:

您的程序似乎将工作目录更改为自己的路径。你能给我们看一下代码吗?System.getPropertyuser.dir这就是你要找的吗?实际上已经没有代码了,这是一个缩减,所以它可以在主方法中工作。我在上面的代码中尝试了System.getPropertyuser.dir:为什么不使用System.getenvvariable\u名称获取环境值并在程序中使用它?