verificar jdk descargar java windows-7 jvm

jdk - java offline



Java user.home se establece en% userprofile% y no se resuelve (5)

Nuestra empresa se actualizó recientemente de Windows XP a Windows 7 Enterprise. La instalación de JDK ya no establece user.home en la ruta completa del directorio de usuarios, sino que establece user.home en %userprofile% . Esto está causando una gran cantidad de problemas con aplicaciones como Eclipse, Maven, etc. Ahora tengo que configurar -Duser.home en la JVM para cada aplicación. Alguien más ha experimentado esto? ¿Hay una solución para esto? ¿Esto estaría relacionado con la instalación de Windows 7 Enterprise? He probado el 1.5 JDK y el 1.6 JDK.

Aquí está la lista de propiedades. Tenga en cuenta user.home:

-- listing properties -- java.runtime.name=Java(TM) SE Runtime Environment sun.boot.library.path=C:/Program Files/Java/jre6/bin java.vm.version=16.0-b13 java.vm.vendor=Sun Microsystems Inc. java.vendor.url=http://java.sun.com/ path.separator=; java.vm.name=Java HotSpot(TM) Client VM file.encoding.pkg=sun.io user.country=US sun.java.launcher=SUN_STANDARD sun.os.patch.level= java.vm.specification.name=Java Virtual Machine Specification user.dir=C:/Users/politesp/Desktop java.runtime.version=1.6.0_18-b07 java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment java.endorsed.dirs=C:/Program Files/Java/jre6/lib/endorsed os.arch=x86 java.io.tmpdir=C:/Users/politesp/AppData/Local/Temp/ line.separator= java.vm.specification.vendor=Sun Microsystems Inc. user.variant= os.name=Windows 7 sun.jnu.encoding=Cp1252 java.library.path=C:/WINDOWS/system32;.;C:/WINDOWS/Sun/... java.specification.name=Java Platform API Specification java.class.version=50.0 sun.management.compiler=HotSpot Client Compiler os.version=6.1 user.home=%userprofile% user.timezone= java.awt.printerjob=sun.awt.windows.WPrinterJob file.encoding=Cp1252 java.specification.version=1.6 user.name=politesp java.class.path=. java.vm.specification.version=1.0 sun.arch.data.model=32 java.home=C:/Program Files/Java/jre6 java.specification.vendor=Sun Microsystems Inc. user.language=en awt.toolkit=sun.awt.windows.WToolkit java.vm.info=mixed mode, sharing java.version=1.6.0_18 java.ext.dirs=C:/Program Files/Java/jre6/lib/ext;C:... sun.boot.class.path=C:/Program Files/Java/jre6/lib/resour... java.vendor=Sun Microsystems Inc. file.separator=/ java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport... sun.cpu.endian=little sun.io.unicode.encoding=UnicodeLittle sun.desktop=windows sun.cpu.isalist=pentium_pro+mmx pentium_pro pentium+m...

Actualizar:

Usando el enlace al error de Andreas_D descubrí:

El valor de HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Explorer/Shell Folders/Desktop es % userprofile% / Desktop en mi instalación de Windows 7 Enterprise.

Cuando cambio el valor de esta clave a C:/Users/politesp/Desktop , mi user.home se resuelve correctamente. ¿Alguna idea de por qué está pasando esto?



Hasta Java 8, donde esto es fijo, la solución es agregar esto a las variables de entorno:
_JAVA_OPTIONS: -Duser.home =% HOMEDRIVE %% HOMEPATH%

o en línea de comando:
establecer _JAVA_OPTIONS = -Duser.home =% HOMEDRIVE %% HOMEPATH%

Vi la solución en los comentarios de esta página: http://www.timehat.com/javas-user-home-is-wrong-on-windows/


La mayoría de las claves de registro ubicadas en:

Carpetas HKEY_CURRENT_USER / Software / Microsoft / Windows / CurrentVersion / Explorer / Shell

comenzó con% userprofile%. Actualicé todas las claves de registro que comenzaron con% userprofile% para comenzar con C: / Users / myusername. Verifiqué en Windows XP que las rutas están de hecho codificadas y que% userprofile% no se usa. Los técnicos de TI mencionaron que las claves de registro predeterminadas usaban% profile de perfil de usuario debido a un perfil predeterminado que se usaba en Windows 7. La JVM espera que la ruta de Escritorio sea codificada. No evaluará las variables de entorno.

Puede actualizar las claves de registro una a una o puede exportar la carpeta y cambiar las claves. A continuación, le mostramos cómo puede exportar e importar las claves de registro:

1. Go to Start > Run. 2. Type regedit. This opens the registry editor. 3. Browse to HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Explorer/Shell Folders. 4. Right click on Shell Folders and choose Export. 5. Select the Desktop as the destination and enter Shell Folders for the file name and save the file. 6. Open the file in a text editor and replace %userprofile% with C://Users//yourusername. Save and close the file. 7. Go back to the registry editor window and select File > Import from the main menu. 8. Select Shell Folders.reg and click Open. 9. Close the registry editor and delete the Shell Folders.reg file off of the desktop.


Los valores de cadena única en el registro tienen 2 tipos "REG_SZ" y "REG_EXPAND_SZ" y tratan las cadenas "%data%" diferente.

Type "REG_SZ" leaves any "%data%" as is.

Escriba "REG_EXPAND_SZ" reemplaza "%data%" el valor de la variable de entorno "data" si está definido; de lo contrario, no se produce ninguna resolución.

Los applets de edición de variables de entorno de GUI de Windows seleccionan el tipo correcto dependiendo de si aparece "%name%" en el campo de valor.

Este problema parece un instalador que toma malas decisiones al escribir en el registro.


Me parece que, por cualquier motivo, %USERPROFILE% no se ha establecido en un valor. ¿Qué obtienes si echo %USERPROFILE% en el shell de comandos?

Tal vez no es una característica del sistema operativo sino un problema de configuración. En mi máquina (Vista) %USERPROFILE% resuelve en mi directorio de inicio y es el mismo para la propiedad de Java user.home

Editar

Aquí hay un problema de Vista / Windows7 con USERPROFILE y user.home: bug . Puede que no resuelva tu problema, puede darte una idea ...