2009-05-30 25 views
25

Ich habe viele Produkte mit JDK gebündelt gesehen, ich frage mich, ob es eine Möglichkeit gibt, JDK durch einfaches Entpacken von Inhalten in ein Verzeichnis zu installieren, so dass kein Symbol in add/remove-Programmen, keine Registrierungseinträge etc.Java manuell unter Windows installieren?

erstellt wird

Auch in diesem Fall: Wie können wir Java-Plugin für Browser konfigurieren? Und wie können wir Einstellungen konfigurieren, wie sie über den Eintrag in der Systemsteuerung für Java angezeigt werden?

Antwort

14

Ja, Sie können ein gezipptes JDK erstellen, es auf dem Zielrechner dekomprimieren und java, javac usw. aus diesem Verzeichnis nach Herzenslust ausführen.

Der einfachste Weg, eine solche Zip-Datei zu erstellen, besteht darin, das JDK auf einem Computer zu installieren und dann den Inhalt des JDK-Verzeichnisses zu komprimieren. Wir tun dies unter bestimmten Umständen, wo wir genau kontrollieren müssen, welche Java-Konfiguration in unseren Bereitstellungen verwendet wird. In diesem Fall verweisen unsere Skripte nur auf JAVA_HOME (oder das Äquivalent) zu unserem intern gebündelten JDK, anstatt sich auf einen Systemadministrator zu verlassen, um genau das zu installieren, was wir vor der Ankunft benötigen.

In Bezug auf die Integration mit den Browsern kann das ein bisschen problematischer sein. Die kurze Antwort ist nein, Sie können nicht direkt in den Browser ohne einige Art von Installer integrieren.

+0

Korrekt. Ich hatte nie Probleme, nur das JDK-Verzeichnis zu kopieren und JAVA_HOME zu setzen. –

+0

vielleicht können Sie mir dabei helfen ... http://stackoverflow.com/questions/1619662/where-can-i-get-the-latest-jre-jdk-as-a-zip-file-i- mein-kein-exe-installer – opensas

3

Wirklich, nein, zumindest wenn Sie es von Windows und nicht von, sagen wir, Cygwin verwenden wollen. Windows hängt zu sehr von der Registrierung ab; Sie könnten die erforderlichen Registrierungsaktualisierungen simulieren, aber Software, die die Dateien an den richtigen Ort verschiebt und die Registrierung aktualisiert, wird "ein Installer" genannt; Sie würden das Installationsprogramm einfach neu erfinden.

3

Ich glaube, dass dies mit früheren Versionen von Java zumindest eingeschränkt möglich war - ich weiß nicht, ob es noch so ist.

Die meisten Registrierungseinträge werden für Dinge wie Browser-Plugins verwendet, wie Sie in der Frage erwähnt haben. Wenn Sie nur Java ausführen möchten (z. B. aus einer Batch-Datei), ist das eine Sache - aber wirklich Installation ist es eine andere Sache. Selbst wenn Sie es nur ausführen möchten, müssen Sie darauf achten, dass Sie immer genau das verwenden, das Sie beabsichtigen, anstatt das installierte Programm versehentlich für einen Teil Ihrer Anwendung zu verwenden.

Was ist Ihr tatsächlicher Anwendungsfall? Brauchen Sie eigentlich ein Browser-Plugin? Welchen Aspekt der Konfiguration interessieren Sie? Viele der Control Panel-Konfiguration hat mit Updates und Browser-Integration zu tun. Viele andere Aspekte können mithilfe von Befehlszeilenoptionen gesteuert werden, um bestimmte Systemeigenschaften festzulegen.

2

Wenn Sie nur eine JVM mit Ihrer Anwendung bereitstellen möchten, ist in Ordnung, aber mehr als das würde ich nicht empfehlen.

4

Sie könnten SysInternals RegMon und FileMon (jetzt im Besitz und dist von MS) zu sehen genau was vom Java-Installer geändert wird. Ich glaube, es wird eine Reihe von Registrierungseinträgen geben, die Sie erstellen möchten. Produkte wie WISE Installer zum Beispiel verwenden diese Art von Ansatz auch unter dem Dach, um Produktinstallationen (z. B. als MSI) neu zu verpacken.

Bitte seien Sie vorsichtig, da es durch den Installateur auch einige dynamische Entscheidungen getroffen sind die beeinflussen können, was installiert wird (zum Beispiel auf XP v.s. W2K3-Server). Ich wurde von diesem einmal in Bezug auf installierte Codepages gebissen. Ich erinnere mich nicht an die genauen Details, aber der Effekt war, dass eine Codepage-Datei in meinem eingebetteten JRE + JDK fehlte (nur rechtlich verteilbarer Teil).Dies verursachte einen sehr bizarren und scheinbar unsinnigen Laufzeitfehler in meinem Code. Das gilt natürlich auch für Server vs. Client-JVM-DLLs.

1

Wenn Sie nur die JDK-Dateien (JRE) haben möchten, können Sie das Installationsprogramm unter sandboxie ausführen. Nach der Installation in der Sandbox kopieren Sie einfach die Dateien von c:\sandbox und Sie sind fertig.

Ich verwende dies zu kompilieren und ältere Java-Anwendungen, die nicht einfach auf eine neuere Version von Java migriert werden können. Ich kann Eclispe auf diese JDKs verweisen und sagen, dass es mit Java 1.3 kompatibel ist.

1

Laden Sie die Windows Server-Version von Java einfach von der Oracle-Download-Seite herunter. Richten Sie selbst JAVA_HOME- und PATH-Variablen ein.

29

Nach this habe ich eine batch script erstellt, um jdk-Archive automatisch zu erstellen.

die wesentlichen Teile der Verbindung sind:

  • erstellen JDK Arbeitsverzeichnis ("C: \ JDK" in diesem Fall)
  • Download neueste Version von JDK von Oracle (zum Beispiel „jdk -7u7-windows-i586.exe ")
  • herunterladen und installieren 7-zip (oder Download von 7-Zip portable Version, wenn Sie nicht Administrator)
  • mit 7-zip extrahieren Sie alle Dateien von" jdk- [6 -7] u? -windows-i586.exe "im Verzeichnis" C: \ JDK "
  • In-Befehls-Shell (cmd.exe) wie folgt vor:
    1. change directory zu Verzeichnis C: \ JDK.rsrc \ JAVA_CAB10
    2. Ausführbefehl: extrac32 111
  • Entpacke C: \ JDK.rsrc \ JAVA_CAB10 \ tools.zip mit 7-zip
  • In-Befehls-Shell (cmd.exe) wie folgt vor:
    1. Änderung direkte ory zu C: \ JDK.rsrc \ JAVA_CAB10 \ tools \
    2. Befehl ausführen: für/r% x in (* .pack) tun. \ bin \ entpacken200 -r "% x" "% ~ dx% ~ px % ~ nx.jar " (dies wird alle Pack-Dateien in Glas umwandeln)
  • kopieren ganzes Verzeichnis und alle subdir von c: \ JDK.rsrc \ JAVA_CAB10 \ tools", wo Sie Ihre JDK sein und einrichten mögen manuell JAVA_HOME und PATH, um auf Ihr JDK-Verzeichnis und sein BIN-Unterverzeichnis zu verweisen.