2009-05-30 14 views
25

He visto muchos productos con JDK, me pregunto si hay una manera de instalar JDK simplemente descomprimiendo el contenido en un directorio, para que no haya ningún icono creado en programas de agregar/quitar, sin entradas de registro, etc.Instalando Java manualmente en Windows?

También en este caso: ¿Cómo podemos configurar el complemento de Java para los navegadores? ¿Y cómo podemos configurar los ajustes como se ve a través de la entrada del Panel de control para Java?

Respuesta

14

Sí, puede crear un JDK comprimido, descomprimirlo en la máquina de destino y ejecutar java, javac, etc. desde ese directorio para su contenido.

La manera más fácil de crear un archivo zip es instalar el JDK en una máquina y luego comprimir el contenido del directorio JDK. Hacemos esto en ciertas circunstancias donde necesitamos controlar exactamente qué configuración de Java se utilizará en nuestras implementaciones. En ese caso, nuestros scripts simplemente apuntan JAVA_HOME (o el equivalente) a nuestro JDK integrado internamente en lugar de depender de un administrador de sistema para instalar exactamente lo que necesitamos antes de la llegada.

En términos de integración con los navegadores, eso puede ser un poco más problemático. La respuesta corta es no, no se puede integrar directamente con el navegador sin tipo tipo de instalador.

+0

Correcto. Nunca tuve ningún problema simplemente copiando el directorio JDK y estableciendo JAVA_HOME. –

+0

tal vez me puede ayudar con esto ... http://stackoverflow.com/questions/1619662/where-can-i-get-the-latest-jre-jdk-as-a-zip-file-i- mean-no-exe-installer – opensas

3

Realmente, no, al menos si quiere usarlo desde Windows y no desde, digamos, cygwin. Windows depende demasiado del registro; puede simular las actualizaciones de registro necesarias, pero el software que mueve los archivos al lugar correcto y actualiza el registro se llama "un instalador"; solo estarías reinventando el instalador.

3

Creo que al menos solía ser factible hasta cierto punto con versiones anteriores de Java, no sé si todavía lo es.

La mayoría de las entradas de registro se utilizan para cosas como los complementos del navegador, como mencionó en la pregunta. Si solo quiere poder ejecutar Java (por ejemplo, desde un archivo por lotes), eso es una cosa, pero realmente instalando es una cuestión diferente. Incluso si solo desea ejecutarlo, deberá tener cuidado de usar siempre explícitamente el que desea, en lugar de usar el instalado accidentalmente para una parte de su aplicación.

¿Cuál es su caso de uso real? ¿Realmente necesitas un complemento de navegador? ¿Qué aspecto de la configuración le interesa? Gran parte de la configuración del panel de control tiene que ver con las actualizaciones y la integración del navegador. Muchos otros aspectos se pueden controlar usando opciones de línea de comando para establecer propiedades específicas del sistema.

2

Si solo desea proporcionar una JVM con su aplicación está bien, pero más que eso no lo recomendaría.

4

Puede usar SysInternals RegMon y FileMon (ahora propiedad y dist por MS) para ver exactamente lo que modifica el instalador de Java. Creo que habrá una serie de entradas de registro que deseará crear. Productos como el instalador WISE, por ejemplo, también utilizan este tipo de enfoque bajo el capó para reempaquetar las instalaciones del producto (por ejemplo, como MSI).

Por favor tenga cuidado ya que también hay algunas dinámicas decisiones tomadas por el instalador que puede afectar lo que se instala (por ejemplo en XP V.S. servidor W2K3). Fui mordido por esto una vez con respecto a las páginas de códigos instaladas. No recuerdo los detalles precisos, pero el efecto fue que faltaba un archivo de página de códigos en mi JRE + JDK integrado (solo parte legalmente redistribuible).Esto causó un error de tiempo de ejecución muy extraño y aparentemente absurdo en mi código. No hace falta decir que lo mismo se aplica al servidor v.s. cliente JVM DLL.

1

Si solo desea tener los archivos JDK (JRE), puede ejecutar el instalador dentro de sandboxie. Una vez instalado en la zona de pruebas, solo copie los archivos de c:\sandbox y listo.

Estoy usando esto para compilar y ejecutar aplicaciones java heredadas que no se pueden migrar fácilmente a una versión más nueva de java. Puedo señalar Eclispe a este JDKs y decirle que cumpla con Java 1.3.

1

Simplemente cargue la versión del servidor Windows de Java desde la página de descargas de Oracle. Configure las variables JAVA_HOME y PATH por su cuenta.

29

De acuerdo con this, creé un batch script para compilar archivos jdk automáticamente.

Las partes esenciales del enlace son:

  • crear el directorio JDK de trabajo ("C: \ JDK" en este caso)
  • Descargar última versión del JDK de Oracle (por ejemplo, "JDK -7u7-windows-i586.exe ")
  • Descargue e instale 7-zip (o descargue la versión portátil 7-zip si no es administrador)
  • Con 7-zip extrae todos los archivos de" jdk- [6 -7] u? -windows-i586.exe "en el directorio" C: \ JDK "
  • En intérprete de comandos (cmd.exe) hacer lo siguiente:
    1. cambio de directorio en el directorio C: \ JDK.rsrc \ JAVA_CAB10
    2. ejecutar el comando: extrac32 111
  • Desempaquetar C: \ JDK.rsrc \ JAVA_CAB10 \ tools.zip con 7-zip
  • En shell de comandos (cmd.exe) haga lo siguiente:
    1. cambio directo ory a C: \ JDK.rsrc \ JAVA_CAB10 \ tools \
    2. ejecutar comando: para/r% x en (* .pack) do. \ bin \ unpack200 -r "% x" "% ~ dx% ~ px % ~ nx.jar " (esto va a convertir todos los archivos de paquete en la jarra) guía toda
  • Copia y todo subdirectorio del directorio c: \ JDK.rsrc \ JAVA_CAB10 \ tools" dónde quiere que su JDK de ser y de instalación manualmente JAVA_HOME y PATH para señalar su directorio JDK y su subdirectorio BIN.