如何获得当前程序所在的路径?

解决方案 »

  1.   

    Object obj = ...;
    java.net.URL url = obj.getClass().getResource("");
    String path = url.getPath();
      

  2.   

    上述方法是返回指定类的所在目录
    若是程序的,推荐使用相对目录。若要获得程序所在绝对目录。
    可以用这个方法:
    //非静态类
    java.net.URL url = this.getResource("");
    //静态类
    java.net.URL url = ClassName.class.getResource("");//注意,如果类被打包后,上面的方法将会返回null.请注意这个获得程序根目录的类不能放在jar或zip的包里。String sPath = url.getPath(); //获得类的目录
    String sPackage = this.getPackage().getName(); //获得类的包名
    //String sPackage = ClassName.class.getPackage().getName(); //获得静态类的包名
    sPath.replaceAll(sPackage,""); //转化类所在目录中的包名
    //这时候获得的就是类所在的根目录了。如果你的类所在的根目录还不是程序的根目录的话,就在处理一次这个字符串,直到这个字符串处在你的程序根目录为止