Разница в версии 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