ho fatto un'applicazione in JDK7, ma il jre6 è ancora in commercio, e se invio il mio file jar a qualcuno con jre6, non funzionerà, c'è un modo l'applicazione controlla la versione jre e, se non è compatibile, chiede all'utente di aggiornare ..come verificare la versione di jre usando l'applicazione java
risposta
È possibile utilizzare il metodo System.getProperty(String key); con "java.version"
come chiave.
String version = System.getProperty("java.version");
uscita Esempio:
1.6.0_30
I tasti disponibili possono trovare in here.
funzionerà se jre sta mismatching ... perché nel mio caso il file jre dà solo lo splash screen e si chiude se uso jre6 .. ho bisogno di qualche soluzione folle !! – rahul
puoi postare l'eccezione che sta mostrando –
non mostrando alcuna eccezione ... il programma non funzionerà ... ho fatto una finestra di dialogo di errore di eccezione .....ma niente funziona .. – rahul
System.getProperty("java.version")
Nota: Si tornerà la versione di JVM corrente, JVM su cui questo codice è in esecuzione, se si dispone di java6 & Java7 installato sul computer e si esegue questo codice su java 7 vi mostrerà la versione 7
funzionerà se jre è mismatching ... perché nel mio caso il file jre dà solo lo splash screen e si chiude se uso jre6 .. ho bisogno di qualche soluzione folle !! – rahul
potresti darci l'eccezione che mostra quando si chiude? –
non ha dato alcuna eccezione .... non è in esecuzione ... ho fatto una finestra di errore in caso di qualsiasi eccezione .... quindi non ho mostrato nulla .... – rahul
qui è un example che controlla la versione e genera un'eccezione se la versione è in correggere utilizzando System.getProperty("java.version");
funzionerà se jre è in errore ... perché nel mio caso il file jre dà solo lo splash screen e si chiude se uso jre6 .. ho bisogno di una soluzione folle !! – rahul
Non riesco a verificarlo, ma se lo metti in una classe che viene caricata prima che vengano caricate tutte le classi specifiche di jre7, dovrebbe funzionare – Sibster
Utilizzo di Java Web Avvio si dispone di una finestra di messaggio sulla versione java se non è compatibile con il jar. Per esempio:
<resources>
<j2se version="1.4+"
href="http://java.sun.com/products/autodl/j2se" />
nel file JNLP
static public void main(String[] arg) throws IOException
{
PrintStream out = System.out;
Properties pro = System.getProperties();
Set set = pro.entrySet();
Iterator<Map.Entry<String , String >> itr = set.iterator();
while(itr.hasNext())
{
Map.Entry ent = itr.next();
out.println(ent.getKey() + " -> " + ent.getValue() + "\n");
}
}
Usa System.getProperty("java.version")
o System.getProperty("java.runtime.version")
per ottenere la versione di Java installata.
Il codice sopra snipped ti aiuta a trovare ulteriori dettagli come il nome java fornitore, OS ecc
UnsupportedClassVersionError si sarebbe verificato se si tenta di eseguire un file Java su una versione precedente di JRE rispetto alla versione su cui si era compilato.
java.lang.UnsupportedClassVersionError: Bad numero di versione nel file .class [at java.lang.ClassLoader.defineClass1 (Native Method)] su esecuzione di un file di classe Java compilato.
In sostanza non è possibile eseguire file .class compilati con una versione più recente della JVM.
Ecco un [collegamento] (http://stackoverflow.com/questions/198431/how-do-you-compare-two-version-strings-in-java) come confrontare la versione di JRE. – Crazenezz
@Crazenezz: c'è un modo per controllare attraverso dos, creando un file batch di Windows e di base virtuale, potrebbe essere fatto ?? se corrisponde allora eseguirà il barattolo ?? si può fare praticamente ciò che sto dicendo ?? – rahul
Esiste la possibilità di farlo in batch. Puoi convertire l'algoritmo nel link che ho fornito sopra e tradurlo con lo stile di programmazione batch (se ti senti a tuo agio nell'utilizzarlo). – Crazenezz