Cómo obtener la ruta al directorio temporal en Java
Para obtener la ruta al directorio temporal en Java puedes utilizar la
propiedad del sistema
java.io.tmpdir.
La JVM establece esta propiedad cuando se inicia y apunta al directorio temporal por defecto para el sistema operativo.
System.getProperty("java.io.tmpdir");El siguiente fragmento de código muestra un programa sencillo que traza el directorio temporal al iniciar la aplicación:
public class TempDir {
public static void main(String[] args) {
System.out.println("Temporary directory: " + System.getProperty("java.io.tmpdir"));
}
}Al ejecutar el programa se obtendrá la siguiente salida:
Temporary directory: /tmp¿Cuáles son los directorios temporales por defecto para cada sistema operativo?
- Windows:
%USERPROFILE%\AppData\Local\Temp - Linux:
/tmp - macOS:
/tmp
¿Cómo cambiar la ruta al directorio temporal en Java?
La JVM establece automáticamente la ruta al directorio temporal como una propiedad del sistema.
Sin embargo, puedes cambiarla estableciendo la propiedad java.io.tmpdir a la ruta deseada al iniciar la JVM.
java -Djava.io.tmpdir=$TEMP_DIR -jar my-app.jarAlternativamente, puedes usar la variable de entorno JAVA_TOOL_OPTIONS, que es útil en entornos containerizados donde no puedes modificar fácilmente los argumentos de la JVM:
export JAVA_TOOL_OPTIONS="-Djava.io.tmpdir=$TEMP_DIR"
java -jar my-app.jarInconsistencia con la barra final
Ten en cuenta que el valor devuelto por java.io.tmpdir puede o no incluir una barra final dependiendo de la plataforma.
Consejo
Utiliza siempre java.io.File o java.nio.file.Path para construir rutas de ficheros en lugar de concatenar cadenas de texto para evitar problemas.
