- Windows-7 (6,1)
- JRE 1.8.0_72 64bit
HelloWorld.class
mit 1.8.0_72 64-Bit-JDK zusammengestellt von:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
HelloWorld.class
mit 1.8.0_72 64-Bit-JDK zusammengestellt von:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
gemacht ein leerer Ordner auf meinem Desktop.
Kopierte C: \ Programme \ Java \ jre1.8.0_72 \ bin \ java.exe in den leeren Ordner.
Kopierte HelloWorld.class von wo ich es kompiliert hatte.
Begann eine neue cmd mit seinem aktuellen Verzeichnis auf den neuen Ordner.
typisierten in der folgenden aller Umgebungsvariablen, um loszuwerden:
for /f "delims==" %a in ('set') do set %a=
Karo zu sicherstellen, dass sie alle weg waren:
set
Welche Ausgabe wie folgt hergestellt:
Das zeigt, dass jetzt kein Klassenpfad oder Pfad oder eine andere Umgebungsvariable festgelegt ist.
So, jetzt gebe ich die folgenden, und sehen Sie das (erwartete Ergebnis):
Die recht ordentlich ist, denn das ist nur 1 K für die .class-Datei und 203K für java.exe ist.
Kann es wirklich so einfach sein?
Nein. Ich denke, ich werde es noch einmal versuchen. Ich muss java.dll und .jar Dateien über die Windows-Registrierung erhalten.
In meiner Lektüre entdeckte ich, dass die JRE im JDK enthalten keine Registry-Referenzen enthält. Ich werde die JRE von einer Installation auf einem meiner Computer auf ein Flash-Laufwerk zusammen mit der HelloWorld.class-Datei kopieren. Das Ergebnis auf dem Flash-Laufwerk sieht wie folgt aus:
Dann auf einem Computer ausgeführt wird Hello World versuchen, ich werde mit NO Java überhaupt installiert ist. Und hier ist es, was das Ergebnis, dass aussah:
Das ist ziemlich cool. Keine Registrierungsbeschwerden, kein installiertes Java, und doch lief es gut! Immerhin sind es 186 MB.
Ich denke, der nächste Schritt ist, Dinge zu entfernen und zu sehen, wie weit ich gehen kann, bevor es nicht mehr funktioniert.
Um zu beginnen, werde ich alles außer java.exe entfernen, aber ich werde die Verzeichnisstruktur in Ruhe lassen.
Nun, das ist interessant:
Ich denke, es die Registrierung, nachdem alle nicht überprüft. Ich denke, ich sollte java.dll zurück und versuchen Sie es erneut. Also hier ist, was in jre \ ist auf dem Flash-Laufwerk jetzt:
Und hier ist das Ergebnis:
Also ich zumindest die Datei zu benötigen. Interessanterweise ist, dass das einzige, was im amd64 Verzeichnis trotzdem:
Und das gibt uns den nächsten Schritt ...
Okay, so fügen Sie einfach das auch. Nun, es wollte jre \ bin \ verify.dll.
Und dann wollte das jre \ bin \ zip.dll. Jetzt
, die benötigt java/lang/Objekt, so dass ich denke, wir brauchen jre \ lib \ rt.jar
Und raten Sie mal, was? Das war genug:
Somit ist der gesamte jre minimale Stellfläche war: 69,1 MB (72.519.711 Byte)
Vergleichen Sie das mit dem jre Gesamt Stellfläche: 186 MB (195.043.328 Bytes)
Kaum scheint die Mühe wert. Das nächste Mal werde ich nur die JRE von der JDK mit allem darin verwenden.
Ohne 'rt.jar'? Sie sollten eine fehlende Klassendefinition für 'java.lang.String' bekommen. –
Ich weiß. Kinda hat mich auch überrascht. Könnte ich einen über einen Registrierungseintrag oder etwas erhalten?
–
Abschließende Notiz. Ich denke, ich weiß, warum Java Server \ java.dll wollte. Es wird in der jvm.cfg erwähnt: -server KNOWN –