Propiedad "user.dir" de Java: ¿qué significa exactamente?
100
Quiero usar user.dirdir como directorio base para mis pruebas unitarias (eso crea muchos archivos). ¿Es correcto que esta propiedad apunte al directorio de trabajo actual (por ejemplo, establecido por el comando 'cd')?
Como se indica en stackoverflow.com/a/840229/3159183 , tenga en cuenta que la -Duser.dirbandera afecta a los Fileobjetos (si no se les da una ruta completa) pero no a los FileOutPutStreamobjetos. Si desea asegurarse de que el directorio predeterminado coincida con ambos, debe hacerlo cdantes de iniciar Java.
SeldomNeedy
Respuestas:
142
Es el directorio desde donde javase ejecutó, donde inició la JVM. No tiene que estar dentro del directorio de inicio del usuario. Puede estar en cualquier lugar donde el usuario tenga permiso para ejecutar java.
Así que si cden /somedir, a continuación, ejecutar el programa, user.dirserá /somedir.
Una propiedad diferente user.home, se refiere al directorio de usuarios. Como en /Users/myusero /home/myusero C:\Users\myuser.
Consulte aquí para obtener una lista de propiedades del sistema y sus descripciones.
Ya lo leí antes de publicarlo. Pero el "directorio de trabajo del usuario" no es la mejor explicación, espero que esté de acuerdo.
johnny-b-goode
¿Eso significa que en la configuración de tomcat para todas las versiones de Java, si user.direstá apuntando a /usr/share/tomcaty en la configuración agregamos algo como esto: file:./configentonces apuntará a /usr/share/tomcat/configsiempre?
Por lo general, este es el directorio donde se inició su aplicación (java) (directorio de trabajo). "Normalmente" porque se puede cambiar, por ejemplo, cuando ejecuta una aplicación conRuntime.exec(String[] cmdarray, String[] envp, File dir)
-Duser.dir
bandera afecta a losFile
objetos (si no se les da una ruta completa) pero no a losFileOutPutStream
objetos. Si desea asegurarse de que el directorio predeterminado coincida con ambos, debe hacerlocd
antes de iniciar Java.Respuestas:
Es el directorio desde donde
java
se ejecutó, donde inició la JVM. No tiene que estar dentro del directorio de inicio del usuario. Puede estar en cualquier lugar donde el usuario tenga permiso para ejecutar java.Así que si
cd
en/somedir
, a continuación, ejecutar el programa,user.dir
será/somedir
.Una propiedad diferente
user.home
, se refiere al directorio de usuarios. Como en/Users/myuser
o/home/myuser
oC:\Users\myuser
.Consulte aquí para obtener una lista de propiedades del sistema y sus descripciones.
fuente
user.dir
está apuntando a/usr/share/tomcat
y en la configuración agregamos algo como esto:file:./config
entonces apuntará a/usr/share/tomcat/config
siempre?user.dir
es el "directorio de trabajo del usuario" según el tutorial de Java, Propiedades del sistemafuente
Por lo general, este es el directorio donde se inició su aplicación (java) (directorio de trabajo). "Normalmente" porque se puede cambiar, por ejemplo, cuando ejecuta una aplicación con
Runtime.exec(String[] cmdarray, String[] envp, File dir)
fuente
System.getProperty("user.dir")
obtiene el directorio o la ruta del espacio de trabajo para el proyecto actualfuente