¿Hay alguna manera de que el programa Java determine su ubicación en el sistema de archivos?Obtención de la ruta del archivo en java
Respuesta
Puede usar CodeSource#getLocation()
para esto. El CodeSource
está disponible por ProtectionDomain#getCodeSource()
. El ProtectionDomain
a su vez está disponible por Class#getProtectionDomain()
.
URL location = getClass().getProtectionDomain().getCodeSource().getLocation();
File file = new File(location.getPath());
// ...
Esto devuelve la ubicación exacta de la Class
en cuestión.
Actualización: según los comentarios, aparentemente ya está en el classpath. A continuación, puede usar ClassLoader#getResource()
donde pasa la ruta relativa al paquete raíz.
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
URL resource = classLoader.getResource("filename.ext");
File file = new File(resource.getPath());
// ...
Incluso, pueden obtener como una InputStream
usando ClassLoader#getResourceAsStream()
.
InputStream input = classLoader.getResourceAsStream("filename.ext");
// ...
Esa es también la forma normal de usar recursos empaquetados. Si está ubicado dentro de un paquete, utilice en su lugar, por ejemplo, com/example/filename.ext
.
si desea obtener el "directorio de trabajo" para el programa actualmente en ejecución, a continuación, sólo tiene que utilizar:
new File("");
El directorio de trabajo no es necesariamente donde se encuentra el programa. – Douglas
Para mí esto funcionó, cuando supe lo que era el nombre exacto del archivo:
File f = new File("OutFile.txt");
System.out.println("f.getAbsolutePath() = " + f.getAbsolutePath());
O existe esta solución también: http://docs.oracle.com/javase/tutorial/essential/io/find.html
- 1. Obtención de la ruta del archivo del módulo importado
- 2. Ruta del archivo de propiedades en java
- 3. Obtención de la ruta Mis documentos en Java
- 4. Obtención de la ruta de acceso absoluta de un archivo
- 5. Obtención de NppExec para comprender la ruta del archivo actual en Notepad ++ (para scripts de Python)
- 6. Obtención de la ruta del directorio de usuarios
- 7. Java - Obtención de un archivo del mismo paquete
- 8. propiedades Java, consiguiendo ruta del archivo
- 9. Obtención de una ruta virtual relativa desde la ruta física
- 10. ruta canónica del archivo en Java - ¿problema de optimización?
- 11. Obtención de nombre (s) de carpeta de la ruta
- 12. Desinfectar la ruta del archivo en PHP
- 13. Obtención de la ruta de un archivo en un conjunto de servicios wcf
- 14. Obtención de una ruta de archivo desde un identificador de archivo en Windows
- 15. Obtener ruta de archivo completa en java
- 16. Java: obtenga la ruta absoluta del servidor
- 17. Obtención de la ruta del sistema de archivos de la aplicación IIS
- 18. Obtención de la ruta de una secuencia de comandos R
- 19. ruta de archivo Java en Linux
- 20. ruta del archivo Formato de Windows a formato Java
- 21. Obtención del último archivo abierto en el cuadro de diálogo de archivo abierto
- 22. Ruta del archivo/nombre de InputStream
- 23. ruta del archivo como argumento ruta MVC
- 24. Retire la extensión del archivo en Java
- 25. android dibujable desde la ruta del archivo
- 26. ¿Cómo ocultar la ruta del archivo en la URL?
- 27. Obtener la ruta del archivo de una imagen en ImageView
- 28. Ruta del archivo al portapapeles en Emacs
- 29. Ruta del archivo canónico en Ruby
- 30. ¿Convertir la ruta del archivo a un archivo URI?
1, pero tenga en cuenta que P rotectionDomain.getCodeSource() y CodeSource.getLocation() pueden ser nulos. –
@bkail: De hecho, puede devolver nulo cuando se carga con un cargador de clase de diseño propio, mal diseñado, o cuando se carga desde alguna fuente de flujo externo, etc. Sin embargo, esto no se aplica en programas Java "concretos" con un 'main() '. – BalusC
Esto definitivamente hace el trabajo, pero no se ve muy bien. Lo que tengo que hacer es cargar un archivo de configuración que debe estar en la misma carpeta que mi jar pero se puede ejecutar desde cualquier ubicación. ¿Es esta la manera correcta de obtener la información de ubicación del archivo? – markovuksanovic