2012-05-16 2 views
7

Я сделал приложение в JDK7, но jre6 все еще используется на рынке, и если я отправлю файл jar кому-то с jre6, он не будет работать, есть ли способ, который приложение проверяет версию jre, и если она не является совместимой, попросите пользователя обновить.Как проверить версию jre с помощью java-приложения

+0

Здесь [ссылка] (http://stackoverflow.com/questions/198431/how-do-you-compare-two-version-strings-in-java), как сравнить версию JRE. – Crazenezz

+0

@Crazenezz: есть ли способ, проверив через dos, создав пакетный файл Windows и виртуальный базовый, можно ли это сделать? если он будет соответствовать, то он выполнит банку ?? может ли это быть практически сделано, я говорю? – rahul

+0

Существует возможность сделать это в пакетном режиме. Вы можете преобразовать алгоритм в ссылку, которую я даю выше, и перевести ее с помощью стиля пакетного программирования (если вам удобно пользоваться этим). – Crazenezz

ответ

9

Вы можете использовать метод System.getProperty(String key); с ключом "java.version".

String version = System.getProperty("java.version"); 

Пример вывода:

1.6.0_30 

Доступные ключи можно найти на here.

+0

будет работать, если jre несовместим ... потому что в моем случае файл jre просто дает заставку и закрывается, если я использую jre6 .. мне нужно какое-то решение для проверки дурака !! – rahul

+0

вы можете опубликовать исключение, которое показывает –

+0

его не показывая никакого исключения ... программа не запустится ... я сделал диалоговое окно с ошибкой ошибки .....но ничего не работает .. – rahul

2
System.getProperty("java.version") 

Примечание: Она возвращает версию текущего Jvm в, Jvm, на котором этот код выполняется, если у вас есть java6 & java7 установлена ​​на вашем компьютере, и вы работаете в этом код на java 7, он покажет вам версию 7

+0

будет работать, если jre несовместим ... причина в моем случае jre-файл просто дает заставку и закрывается, если я использую jre6 .. мне нужно какое-то решение для проверки дурака !! – rahul

+0

Вы могли бы дать нам исключение, которое оно показывает, когда оно закрывается? –

+0

его не дает никакого исключения .... его просто не работает ... я сделал диалог с ошибкой в ​​случае какого-либо исключения .... так что я ничего не показывал .... – rahul

0

здесь example, который проверяет версию и бросает исключение, если версия находится в исправить с помощью System.getProperty("java.version");

+0

будет работать, если jre несовместим ... потому что в моем случае файл jre просто дает заставку и закрывается, если я использую jre6 .. мне нужно какое-то решение для проверки дурака !! – rahul

+0

Я не могу проверить это atm, но если вы поместите это в класс, который загружается до того, как будут загружены определенные классы jre7, он должен работать – Sibster

0

Использование Java Web Start У вас есть сообщение о версии java, если оно несовместимо с вашей банкой. Например:

<resources> 
     <j2se version="1.4+" 
      href="http://java.sun.com/products/autodl/j2se" /> 

в JNLP файл

2
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"); 
     } 
} 

Использование System.getProperty("java.version") или System.getProperty("java.runtime.version") получить установленную версию Java.
Приведенный выше код отрезала поможет вам узнать более подробную информацию, такие как имя поставщика Java, OS и т.д.

0

UnsupportedClassVersionError произойдет, если вы попытаетесь запустить файл Java на старой версии JRE по сравнению с версией, на которой он был скомпилирован.

java.lang.UnsupportedClassVersionError: Bad номер версии в файле .class [в java.lang.ClassLoader.defineClass1 (Native Method)] о запуске скомпилированного файла класса Java.

В сущности, вы не можете запускать файлы .class, которые скомпилированы с более новой версией, чем JVM.

Смежные вопросы