如何在Java中获取执行目录路径

Mohd Faizan Khan:

我做了一个纯Java应用程序,它告诉我有关给定目录中文件数量的信息。现在,我使用以下代码设置当前目录:

`File f = new File(".");`

之后,我用其jar文件制作了一个安装程序,并将其安装在Windows 8中,然后将其添加到Windows中,右键单击下拉菜单(上下文菜单)。当我从上下文菜单启动它时,它总是告诉我有关实际安装目录的文件数,但是我想从执行目录的位置知道该目录的文件数。

所以请帮助我。我是该领域的新手,我不想让您在当前目录和当前执行目录中感到困惑。因此,我写了这么长时间,并希望用非常简单的话来一个干净的答案。

谢谢

幽灵侠:

正如Jarrod Roberson在这里的回答中所述

一种方法是使用系统属性, System.getProperty("user.dir");这将为您提供“初始化属性时的当前工作目录”。这可能就是您想要的。java即使实际的.jar文件可能驻留在计算机上的其他位置,也可以查找发出命令的位置(在您的情况下,在目录中包含要处理的文件)。在大多数情况下,拥有实际的.jar文件的目录不是很有用。

以下内容将打印出从中调用命令的当前目录,而不管该.class文件所在的.class或.jar文件。

public class Test
{
    public static void main(final String[] args)
    {
        final String dir = System.getProperty("user.dir");
        System.out.println("current dir = " + dir);
    }
}  

如果您在其中,/User/me/并且包含上述代码的.jar文件位于/opt/some/nested/dir/命令中,java -jar /opt/some/nested/dir/test.jar Test则将输出current dir = /User/me

您还应该额外注意使用一个好的面向对象的命令行参数解析器。我强烈推荐Java简单参数解析器JSAP这样一来,您可以使用System.getProperty("user.dir")或替代其他方式来替代行为。一个更加可维护的解决方案。这将使传递目录来进行处理非常容易,并且user.dir如果没有传递任何内容,则可以依靠它。

示例:GetExecutionPath

import java.util.*;
import java.lang.*;

public class GetExecutionPath
{
  public static void main(String args[]) {
    try{
      String executionPath = System.getProperty("user.dir");
      System.out.print("Executing at =>"+executionPath.replace("\\", "/"));
    }catch (Exception e){
      System.out.println("Exception caught ="+e.getMessage());
    }
  }
}

以上的输出将像

C:\javaexamples>javac GetExecutionPath.jav

C:\javaexamples>java GetExecutionPath
Executing at =>C:/javaexamples

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章