jueves, 11 de abril de 2013

JARs y DLLs en Windows Vista

Instalación de un ejecutable .jar que registra archivos dll's en Windows Vista.
Hace ya un buen tiempo usé un instalador .jar en Windows XP, pero cuando me tocó usar ese mismo instalador en el Windows Vista de mi portátil comenzaron los problemas y la eterna brega de instalar un programa en ese sistema operativo. El instalador que estaba usando era una librería de programación que copiaba unas .dll en el Vista y he ahí el problema. Como mucho de ustedes sabrán, cuando hacemos uso de Windows Vista no lo hacemos bajo la cuenta de administrador (como muchos de nosotros lo hacemos en Windows XP), ya que en Vista se nos asigna una cuenta limitada para no hacer mal uso de ésta y evitar así echar por la borda el sistema.
Al tratar de instalar librerias DLL's en Windows Vista (Así también como archivos .exe o .jar que necesitan ser registrados) nos damos con la desagradable sorpresa que no se puede, el sistema operativo reporta un mensaje de error que dice mas o menos:

Se cargo el modulo Libreria.ocx pero se produjo un error en la llamada a dllRegisterserver (codigo de error: 0x80004005)

Otro error encontrado es:

"Unexpected error; quitting"

El problema radica fundamentalmente en que Windows Vista hace mucho mas hincapié en la seguridad del sistema y ya que cualquiera de estos tipos de archivos son potencialmente peligrosos, a menos que el usuario actual sea el Administrador no permitirá que se registren estos archivos.

Pero con unos sencillos pasos podremos habilitar o deshabilitar la cuenta de administrador en Windows Vista, aunque no es recomendado trabajar con dicha cuenta de manera habitual, pero puede ser muy útil a la hora de hacer alguna pequeña modificación en algún archivo del sistema en el cual no tengamos los privilegios de acceso necesarios con la cuenta de usuario que poseemos.

Los siguientes pasos (ver la imagen al principio para ver el proceso completo) permiten instalar un .jar que copia archivos dll en Windows Vista:

1. Nos ubicamos en Inicio – Todos los programas – Accesorios – Símbolo del sistema, damos click derecho sobre éste y seleccionamos Ejecutar como administrador.

2. Ahora para habilitar la cuenta de administrador, dentro del símbolo del sistema ejecutamos lo siguiente: net user administrator /active:yes

3. El siguiente paso es ubicar la ruta física del instalador, en mi caso está en: C:\Users\Cero Cool

4. Luego ejecutamos el comando regsvr32 seguido del nombre del jar, en mi caso fue: regsvr32 Fingerprint_SDK_Java_2007_Installer.jar

5. Y por último ejecutamos el instalador usando el comando java -jar seguido del nombre del instaldor .jar, en mi caso: java -jar Fingerprint_SDK_Java_2007_Installer.jar

¡Y voilá! con eso se me abrió el asistente de instalación gráfico y ya pude instalar la biblioteca de programación en cuestión con unos cuántos clicks (Tecnología "Next" Señores :-D).

Si no les funciona así, pueden probar desactivando el UAC y luego seguir los pasos anteriores. Por lo tanto una solución es loguearse en el sistema como administrador (Primero debemos activar este usuario ya que por defecto viene deshabilitado y al mismo tiempo desactivar el UAC (User Account Control, Control de Cuentas de Usuario en español), todo esto se hace dentro del Panel de control/Control de Usuarios (Debemos aclarar que no alcanza que el usuario actual tenga perfil de administrador debemos loguearnos específicamente con la cuenta Administrador o Administrator en su versión inglesa). Una vez hecho esto ya podremos instalar las librerías tal como lo explicamos antes.

Y eso sería todo, realmente unos pasos muy simples que pueden servirnos en algún momento, espero que si alguien está atravesando por una situación similar pueda servirle.

2 comentarios :

  1. Hola soy Boris del Blog de Boris Estebitan, tanto tiempo amigo, que estes bien.

    ResponderEliminar
    Respuestas
    1. Claro que sí me acuerdo Boris, el poeta, jejeje!!! Espero que vos también estés bien, un gran saludo a la distancia amigo!

      Eliminar

Encuesta: ¿Quién es el mejor catedrático de la carrera de Ing. Informática de la UAGRM?