Wenn Sie Java lernen, gibt es Zeiten, in denen Sie je nach Projekt eine andere Version verwenden möchten. Zum Beispiel mag ich die neueste Inferenz vom Typ Java10 und höher, aber ich kann Java8 nur in meinem Unternehmen verwenden. Je nachdem, wo Sie wohnen, Java4 dort gab es. Es gibt Zeiten, in denen Sie in einer alten Umgebung lernen müssen. Vielmehr kann Java10 ab 2020 kaum noch im Geschäftsleben eingesetzt werden ... In Eclipse gibt es einen Bildschirm zum Angeben von JVM, aber es ist ein Experiment, wie man es tatsächlich in der Befehlszeile angibt.
Ich habe eine Hauptklasse, die mit Java12 kompiliert wurde Es wird angenommen, dass die Umgebungsvariable JAVAHOME auf den Pfad zur JVM von Java12 gesetzt ist. Platzieren Sie in diesem Zustand die JVM von java8 JVM in einem beliebigen Verzeichnis und geben Sie das Verzeichnis ein, in dem sich der Befehl java befindet.
bash
java -version
Drücken Sie den Befehl. Dann
java version "12.0.1" 2019-04-16
Wurde angezeigt. Mit anderen Worten, selbst im aktuellen Verzeichnis wird die JVM ausgeführt, die den Klassenpfad der Umgebungseinstellung JAVA HOME durchläuft.
Deshalb,
bash
./java -version
Ich habe den Java-Befehl des aktuellen Verzeichnisses explizit angegeben. Dann
java version "1.8.0_144"
Und die JVM des aktuellen Verzeichnisses wurde gestartet. Wenn Sie also den Java-Befehl zu einem vollständigen Pfad oder einem relativen Pfad machen, können Sie den Pfad übergeben, unabhängig davon, wo Sie die JVM platzieren.
Daher habe ich versucht, den folgenden Befehl in das Projektstammverzeichnis einzugeben, wobei die JVM direkt unter dem Projektstammverzeichnis platziert wurde
bash
./jdk1.8.0_144.jdk/Contents/Home/bin/java -cp ./bin Main
Dann
Exception in thread "main" java.lang.UnsupportedClassVersionError: Main has been compiled by a more recent version of the Java Runtime
Ich habe diesen Fehler bekommen. Es wird gesagt, dass diese Hauptklasse nicht auf Java8 ausgeführt werden kann, da sie auf Java12 basiert. Mit anderen Worten, der Wechsel ist erfolgreich.
Recommended Posts