Разница в версии Java при использовании библиотеки pdfview имеет значение?

Я пытаюсь запустить этот пример, но он выдает ошибку "Неверный номер версии в файле.class...". Я использую JDK версии 1.6, и пример просит использовать JDK 1.5. Java должен поддерживать обратную совместимость. Как я могу запустить пример с JDK 1.6?

2 ответа

Решение

Здесь есть тонкая ловушка, в которую попадают многие новые люди. Иногда - часто, на самом деле - у вас может быть копия java.exe от старого JDK, установленного на вашей машине, который появляется на вашем пути, о котором вы не знаете. Вы можете попасть в ситуацию, когда вы компилируете классы с помощью нового блестящего компилятора JDK 1.6, а затем попытаетесь запустить их со старым java.exeи получите ошибку, упомянутую здесь. Если это старое java.exeнаходится на вашем пути раньше, чем JDK bin dir, тогда вы найдете компилятор из командной строки, но не нужную версию java.exe сам.

Экстра java.exe часто устанавливался старым установщиком для плагина Java - вещь, которая позволяет запускать апплеты в вашем веб-браузере. Разбойник java.exe скорее всего в вашем WINDOWS каталог, или некоторый вариант (это специфически Windows-ориентированная проблема).

Если вы установили JDK 1.6, включая плагин Java, вы можете просто удалить копию java.exe в вашем каталоге WINDOWS. Если вы не хотите этого делать, вы должны изменить свой путь, чтобы JDK bin каталог до WINDOWS,

Ошибка "Неверный номер версии в файле.class..." возникает при попытке запустить файл класса с новым номером версии на более старой JVM. (Да и то не во всех случаях)

Запуск файла класса со старым номером версии на более новой JVM должен работать.


Вы можете проверить номер версии файла класса, используя javap -v <full-class-name>, Версии:

major    minor       Java
45       3           1.0
45       3           1.1
46       0           1.2
47       0           1.3
48       0           1.4
49       0           1.5
50       0           1.6

и я думаю...

51       0           1.7
Другие вопросы по тегам