BandaAncha.eu

Comunidad de usuarios
de fibra, móvil y ADSL

Eclipse carga Java desde una carpeta "Program Files (x86)" distinta a la de Windows

BocaDePez
BocaDePez

El problema empezó hace unas dos semanas porque se me actualizó la JRE de Java de la versión 1.7.0_201 a la 1.8.0_211 y a raíz de esto al abrir el Eclipse me decía que no encontraba la 1.8.0_201. En este ordenador con Windows 10 hace un tiempo puse el Eclipse para ejecutar una aplicación propietaria y le configuré la ruta al JRE 1.8.0_201 en eclipse.ini y funcionó. Hasta aquí bien, entonces al actualizarse el JRE le actualicé la ruta en el eclipse.ini y es cuando empieza el misterio, pues se sigue quejando que no encuentra la 201 a pesar que en eclipse.ini la ruta del nuevo está bien puesta.

Pruebo a borrar el parámetro -vm (he leído que no es necesario pues ya sabe donde buscar el JRE) y sigue diciendo que el 201 no existe. Incluso pruebo a llevarme el eclipse.ini de la carpeta, nada sigue erre que erre con el 201. Desesperado he borrado el Elipse y todas sus carpetas de configuración (la que crea en la carpeta Users también) y lo he vuelto a extraer todo de los ficheros originales, pues ni así, sigue buscando la versión 201. He buscado con regedit en el registro jre1.8.0_201 y he cambiado la única aparición pero nada.

Al final he conseguido arrancarlo forzando el parámetro -vm en el acceso directo apuntando al nuevo JRE. Y ahí es cuando me doy cuenta de lo que está pasando... desde dentro del Eclipse estoy viendo una versión de C:\Program files (x86)\Eclipse que no es la que veo desde el explorador de Windows. Es como si fuese una versión previa o congelada en el tiempo.

La cosa llega al punto que si abro un archivo desde Eclipse mediante File-Open que ya no existe ahora pero ahí se ve porque estaba en esa versión congelada, si el fichero lo abre el propio Eclipse lo carga y se ve el contenido, pero si el fichero es de los que abre lanzando Notepad éste se queja que el fichero no existe.

Solo me puedo figurar que tenga algo que ver con que lo extraje con el WinRAR directamente a esa carpeta y aunque el usuario es el mismo y además administrador, es como si Windows 10 "aislara" la carpeta Eclipse para que las modificaciones que le haga no las vea otro usuario o el sistema. De todas formas he borrado la carpeta, he extraído Eclipse en otro sitio y lo he copiado en Program Files (x86) y sigue igual.

¿A alguien le suena que "funcionalidad" de Windows es esa?

BocaDePez
BocaDePez

A mi me suena a que el proyecto que abres en el eclipse tiene referencias a la jvm antigua

🗨️ 1
BocaDePez
BocaDePez

No creo, el error lo da nada más lanzar eclipse.exe, ahí no llega a cargar nada del proyecto. En ese momento busca el JRE para ejecutarse a si mismo.

BocaDePez
BocaDePez

yo me olvidé de java por las "features" en compatibilidad..

BocaDePez
BocaDePez

Ya he descubierto que pasa, se trata de la virtualización de carpetas del sistema que hace UAC:

devblogs.microsoft.com/oldnewthing/?p=91681

Ya podría avisar o algo, el tiempo que me ha hecho perder. Pienso que podría diferenciar entre carpetas creadas con un instalador y carpetas creadas por el usuario o señalar de otro color los ficheros virtuales en el explorador.

También pienso que tiene un fallo. Si el programa modifica un fichero el sistema va y mete en el VirtualStore el fichero modificado dejando en la carpeta real el original. Si luego va el usuario y modifica el real, se modifica el real pero el programa sigue viendo el guardado en el VirtualStore. Creo que seria más coherente que si el usuario modifica un fichero real, se borre automáticamente el del VirtualStore para que el programa vea la modificación del usuario.