Posterior a de nuestra extensa compilación de datos dimos con la solución este disgusto que suelen tener muchos los usuarios. Te ofrecemos la solución y esperamos que te sea de mucha ayuda.
Solución:
De acuerdo con la java.io.File
Documentos de Java
El directorio de archivos temporales predeterminado se especifica mediante la propiedad del sistema java.io.tmpdir. En los sistemas UNIX, el valor predeterminado de esta propiedad suele ser “/tmp” o “/var/tmp”; en los sistemas Microsoft Windows, normalmente es “c:temp”. Se puede dar un valor diferente a esta propiedad del sistema cuando se invoca la máquina virtual Java, pero no se garantiza que los cambios programáticos a esta propiedad tengan algún efecto sobre el directorio temporal utilizado por este método.
Para especificar el java.io.tmpdir
Propiedad del sistema, puede invocar la JVM de la siguiente manera:
java -Djava.io.tmpdir=/path/to/tmpdir
Por defecto, este valor debe provenir de la TMP
variable de entorno en sistemas Windows
Hmmm, dado que esto lo maneja la JVM, profundicé un poco en el código fuente de OpenJDK VM, pensando que tal vez lo que hace OpenJDK imita lo que hace Java 6 y versiones anteriores. No es tranquilizador que haya una manera de hacer esto que no sea en Windows.
En Windows, OpenJDK get_temp_directory()
hace una llamada a la API de Win32 para GetTempPath()
; así es como en Windows, Java refleja el valor de la TMP
Variable ambiental.
En Linux y Solaris, lo mismo get_temp_directory()
funciones devuelven un static valor de /tmp/
.
No sé si el JDK6 real sigue estas convenciones exactas, pero por el comportamiento en cada una de las plataformas enumeradas, parece que sí.
Podrías configurar tu _JAVA_OPTIONS
variable ambiental. Por ejemplo, en bash esto haría el truco:
export _JAVA_OPTIONS=-Djava.io.tmpdir=/new/tmp/dir
Puse eso en mi secuencia de comandos de inicio de sesión de bash y parece funcionar.
Reseñas y puntuaciones del post
Nos encantaría que puedieras comunicar esta división si lograste el éxito.