Использование jasperstarter для компиляции и запуска iReport java.lang.UnsupportedClassVersionError

По сути, я хочу создать PDF-файл из файла iReport jrxml или jasper.

Идея состоит в том, чтобы использовать это для отчетов по сети, и лучшим решением, которое мне удалось найти, было использование такой программы, как jasperstarter и затем запустите отчет с подключением к базе данных MSSQL.

Чтобы установить соединение, мне пришлось загрузить последнюю версию net.sourceforge.jtds.jdbc.Driver.

Отчет отлично работает с использованием iReport 5.1, но когда я следую инструкциям jasperstarter, я получаю ответ «java.lang.UnsupportedClassVersionError».

команда jasperstarter

jasperstarter pr -t generic -f pdf -i test_report.jasper -o test -u username -p       password --db-driver net.sourceforge.jtds.jdbc.Driver --db-url jdbc:jtds:sqlserver://LOCAL-PC/Demo_DB

вывод

Exception in thread "main" java.lang.UnsupportedClassVersionError: net/sourcefor
ge/jtds/jdbc/Driver : Unsupported major.minor version 51.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(Unknown Source)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$000(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Unknown Source)
        at de.cenote.jasperstarter.Db.getConnection(Db.java:69)
        at de.cenote.jasperstarter.Report.fill(Report.java:220)
        at de.cenote.jasperstarter.App.processReport(App.java:222)
        at de.cenote.jasperstarter.App.main(App.java:107)

Пожалуйста посоветуй.


person RiaanSA    schedule 10.05.2013    source источник
comment
возможный дубликат неподдерживаемой основной версии 51.0   -  person Stephen C    schedule 10.05.2013


Ответы (2)


По сути, вы пытаетесь запустить код, скомпилированный на/для Java 7, на более старой JVM.

Это не работает.

Либо:

  • запустите ваше приложение на Java 7 JVM (или более поздней версии1); то есть обновить версию Java,
  • найти сборку драйвера JDTS, подходящую для вашей платформы исполнения, или
  • найдите исходный код драйвера JDTS и соберите его для своей платформы.

Для получения более подробной информации об этом исключении и его причинах прочитайте:


1. Обратите внимание, что даже Java 7 уже устарела. Если вы все еще используете эту версию Java, вам следует обновить ее.

person Stephen C    schedule 10.05.2013
comment
Спасибо за совет. Мне пришлось удалить все и переделать, используя последние версии. Это решило мою проблему. - person RiaanSA; 13.05.2013

Убедитесь, что у вас одинаковые JRE и JDK.

Если вы не уверены, удалите последнюю версию JDK и повторите попытку.

Обратите внимание, что JDK устанавливает JRE автоматически.

person RiaanSA    schedule 13.05.2013