Ich möchte die Mindestversion von JVM erzwingen, auf der meine Anwendung mit 1,6 oder höher (d. h. 1,6+) ausgeführt werden soll. Mein Verständnis ist, dass Sie dies mithilfe des Befehlszeilenarguments "-version:" tun können. Ich habe es versucht, und es schien unter Linux gut zu funktionieren, aber nicht unter Windows.
LINUX
Ich habe eine JDK-Version 1.6.0_21 auf einem Linux-Rechner installiert. Die Umgebungsvariablen $ JAVA_HOME und $ PATH wurden so eingestellt, wie sie sein sollten.
Ich habe Folgendes ausgeführt:
%Vor%Alles schien zu erwarten. "Version: 1.6+" und "Version: 1.5+" sollten funktionieren, da ich ein JDK 1.6.0_21 installiert habe, und "Version: 1.7+" sollte nicht, weil ich kein JDK 1.7 installiert habe.
WINDOWS
Ich habe dieselbe JDK-Version 1.6.0_21 auf einem Windows-Rechner installiert (Windows 7, um genauer zu sein). Die Umgebungsvariablen% JAVA_HOME% und% PATH% wurden auf das festgelegt, was sie sein sollten.
Ich habe Folgendes ausgeführt:
%Vor%Ich habe für jede Ausführung einen Fehler bekommen.
Kann jemand erklären, warum dasselbe Befehlszeilenargument unter Linux funktioniert, aber nicht unter Windows? Ist das ein Feature oder ein Fehler?
Was kann ich tun, um das Problem zu beheben? So weit wie möglich möchte ich die gleichen Befehlszeilenargumente sowohl für Linux als auch für Windows verwenden, also muss ich kein anderes Argument "-version:" für Linux und ein anderes für Windows angeben.
Danke.
- Kann jemand erklären, warum das gleiche Befehlszeilenargument unter Linux funktioniert, aber nicht unter Windows? Ist das ein Feature oder ein Fehler?
Ich glaube nicht, dass es mit Linux vs. Windows zusammenhängt, eher ein Problem mit bestimmten Distributionen - ich kann das jetzt wunderbar mit dem Oracle JDK, also dem Nachfolger des Sun JDK unter Windows (beides über PowerShell oder CMD):
%Vor%Im Gegenteil, es schlägt für mich auf Ubuntu 12.04 LTS mit OpenJDK fehl:
%Vor%Eine kurze Suche zeigt die folgenden etwas nicht eindeutigen Fragen:
Ich habe bestätigt, dass dies immer noch mit OpenJDK 6/7 unter Ubuntu 13.10 und auch unter Amazon Linux 2013.09.2 funktioniert. Daher schlage ich vor, mit einem anderen OpenJDK-Vertrieb oder JDK-Anbieter zu experimentieren, falls dieses Problem vorherrscht - es ist definitiv ein seltsames Thema, vor allem. gegeben OpenJDK ist mittlerweile die offizielle Java SE 7 Referenzimplementierung .