Tengo una aplicación de escritorio Java que he escrito. Durante la ejecución, creo carpetas y archivos con el nombre de ruta predeterminado definido en el sistema.directorio de trabajo del usuario: XP vs Vista
Java.io.files establece claramente: By default the classes in the java.io package always resolve relative pathnames against the current user directory. This directory is named by the system property user.dir, and is typically the directory in which the Java virtual machine was invoked.
Además, estoy usando IzPack para permitir la instalación y los accesos directos creación.
Cuando estoy ejecutando mi aplicación en mi computadora XP, después de la instalación obtengo un acceso directo de escritorio, y la creación de los archivos y carpetas mencionados se encuentra en la ubicación donde Izpack instaló el Jar. cual es el comportamiento esperado
¡Pero cuando pruebo esto en una máquina Vista, las carpetas y los archivos se crean en el escritorio! a pesar de que el Jar está en la ubicación correcta (c: \ archivos de programa ... etc.).
Quiero que esos archivos se creen en la misma carpeta en la que se encuentra el Jar, y ciertamente no en el escritorio.
¿Alguien me puede dar alguna información sobre lo que está sucediendo aquí?
escritura para c: \ archivos de programa en Vista necesita el consentimiento de UAC, entonces sospecho que el sistema usa el escritorio como una alternativa. –
¿Hay alguna manera de que piense que puedo controlar la reserva? – uzil24
Aún puede establecer la instalación predeterminada de la aplicación java dentro de% PROGRAMFILES% para las bibliotecas de aplicaciones principales y demás. Pero, en lugar de guardar sus ** configuraciones de usuario/datos ** en cualquier lugar dentro de% PROGRAMFILES% en cualquier sistema operativo Windows, ¿qué le parece usar 'System.getProperty (" user.home ")' o 'System.getenv (" USERPROFILE ")) 'con una carpeta especial adentro para su aplicación java que hace que sea más fácil para el usuario/aplicación cambiar algo? –