java - paths - Obtener la ruta del sistema de archivos de la clase que se está ejecutando
java 8 path (1)
El siguiente fragmento de código hará esto por usted:
final File f = new File(MyClass.class.getProtectionDomain().getCodeSource().getLocation().getPath());
reemplace MyClass
con su clase main
El objeto de File
resultante f
representa el archivo .jar
que se ejecutó. Puede usar este objeto para que el padre encuentre el directorio en el que se encuentra .jar
.
Esta pregunta ya tiene una respuesta aquí:
- Encuentra dónde se carga la clase java a partir de 10 respuestas
¿Hay alguna manera de determinar la ubicación actual del sistema de archivos de la clase ejecutada desde el código de esta clase, en tiempo de ejecución, dado que se ejecuta con el comando java
?
Por ejemplo para la siguiente clase:
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);
}
}
¿Hay alguna forma de obtener e imprimir la ruta correcta en el sistema de archivos del archivo MyClass.class que se acaba de invocar?
De forma similar, si invoco el archivo jar desde el comando java -jar
, ¿hay alguna manera de obtener una ruta de archivo jar dentro de las clases dentro de ese contenedor?
PD: ¡Por favor, no hagas suposiciones sobre el directorio de trabajo desde el que se invoca el comando java
!