Java - 当前执行的应用程序路径

时间:2017-09-11 08:20:33

标签: java

我想在应用中获取当前的应用路径。

Path currentRelativePath = Paths.get("");
String s = currentRelativePath.toAbsolutePath().toString();
System.out.println("Current config file path is: " + s);

看起来效果很好,但是当我使用下面的时候。

> pwd
> /usr/local/
> java -jar app/getapppath.jar // executed app inside app folder
> Current config file path is : /usr/local // I want /usr/local/app

我可以在“应用程序”之后执行我的应用程序,但我想从根本上解决它。对此有何想法?

1 个答案:

答案 0 :(得分:0)

您可以使用classloader获取该信息。这是一个例子,您可以根据自己的需要采用:

package test;
import java.net.URL;

public class a { 

  public static void main(String[] args) {
    URL u = ClassLoader.getSystemResource("test/a.class");
    System.out.println(u);
  }
}

就我而言,它的作用如下:

 $ cd /tmp
 $ java -cp /home/me a
 file:/home/me/a.class
 $