Получение пути к файловой системе исполняемого класса [дубликат]

На этот вопрос уже есть ответ здесь:

Есть ли способ определить текущее местоположение исполняемого класса в файловой системе из кода этого класса во время выполнения, учитывая, что он выполняется с помощью команды java?

Например, для следующего класса:

public class MyClass{
 public static void main(String[] args){\
   new MyClass().doStuff();
 }

 private void doStufF(){
   String path =... // what to do here?!
   System.out.println("Path of class being invoked: " + path);
 }

}

Есть ли способ получить и напечатать правильный путь в файловой системе только что вызванного файла MyClass.class?

Точно так же, если я вызываю файл jar из команды java -jar, есть ли способ получить путь к файлу jar из классов внутри этого jar?

P.S. :Пожалуйста, не делайте никаких предположений о рабочей директории , из которой вызывается команда java!

61
задан Piotr Sobczyk 14 November 2014 в 15:41
поделиться