Forse questo aiuta qualcuno, anche. Sembra che ci sia un modo più semplice per ottenere la versione di JAVA usata per compilare/compilare .class.In questo modo è utile per l'autovalutazione applicazione/classe sulla versione di JAVA.
Ho passato con biblioteca JDK e ho trovato questa costante utile: com.sun.deploy.config.BuiltInProperties.CURRENT_VERSION. Non so da quando è in JAVA JDK.
Cercando questo pezzo di codice per diverse costanti versione ottengo risultato qui sotto:
src:
System.out.println("JAVA DEV ver.: " + com.sun.deploy.config.BuiltInProperties.CURRENT_VERSION);
System.out.println("JAVA RUN v. X.Y: " + System.getProperty("java.specification.version"));
System.out.println("JAVA RUN v. W.X.Y.Z: " + com.sun.deploy.config.Config.getJavaVersion()); //_javaVersionProperty
System.out.println("JAVA RUN full ver.: " + System.getProperty("java.runtime.version") + " (may return unknown)");
System.out.println("JAVA RUN type: " + com.sun.deploy.config.Config.getJavaRuntimeNameProperty());
uscita:
JAVA DEV ver.: 1.8.0_77
JAVA RUN v. X.Y: 1.8
JAVA RUN v. W.X.Y.Z: 1.8.0_91
JAVA RUN full ver.: 1.8.0_91-b14 (may return unknown)
JAVA RUN type: Java(TM) SE Runtime Environment
In classe bytecode c'è davvero memorizzato costante - vedi parte contrassegnata in rosso di Main.call - constant stored in .class bytecode
costante è in classe utilizzato per verificare se la versione JAVA non è aggiornato (vedi How Java checks that is out of date) ...
fonte
2016-05-16 14:31:26
duplicato più popolare http://stackoverflow.com/questions/1096148/how-to-check-the -jdk-version-used-to-compile-a-class-file ha in risposta alcuni utili strumenti non menzionati qui. – Vadzim