Unsupportedclassversionerror: jvmcfre003 неверная основная версия; класс=, смещение=6

Тема в разделе "Lotus + Java + LS2J", создана пользователем imendan, 19 авг 2015.

Метки:
  1. imendan

    imendan Well-Known Member

    Регистрация:
    22 сен 2010
    Сообщения:
    97
    Симпатии:
    0
    Приветствую, Господа! Поднимаю старый вопрос, пытаюсь в Lotus Designer 9.0.1 создать Java-агент, который тянет классы из импортированного .jar файла. Выходит ошибочка
    Exception in thread "AgentThread: JavaAgent" java.lang.UnsupportedClassVersionError: JVMCFRE003 неверная основная версия; класс=, смещение=6
    Код (Text):
    at java.lang.ClassLoader.defineClassImpl(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:287)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:224)
    at lotus.domino.AgentLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:638)
    at java.lang.J9VMInternals.verifyImpl(Native Method)
    at java.lang.J9VMInternals.verify(J9VMInternals.java:72)
    at java.lang.J9VMInternals.initialize(J9VMInternals.java:134)
    at egov.New(Unknown Source)
    at JavaAgent.NotesMain(Unknown Source)
    at lotus.domino.AgentBase.runNotes(Unknown Source)
    at lotus.domino.NotesThread.run(Unknown Source)
    Вот, сообственно, так пытаюсь вызвать...
    Код (Java):
    MainClass test = new MainClass();
    test.init();
    Эта тема создавалась в http://codeby.net/forum/threads/50673/. Но решения так и не озвучены. Прошу помощи
     
  2. alexas1

    alexas1 Lotus team
    Lotus team

    Регистрация:
    10 апр 2014
    Сообщения:
    567
    Симпатии:
    214
    Похоже импортится скомпиленное на старой версии JDK
    Резюм - перекомпилить
     
  3. imendan

    imendan Well-Known Member

    Регистрация:
    22 сен 2010
    Сообщения:
    97
    Симпатии:
    0
    А можно без перекомпилировки?
     
  4. garrick

    garrick Lotus team
    Lotus team

    Регистрация:
    26 окт 2009
    Сообщения:
    773
    Симпатии:
    52
    Версия импортированного JAR файла выше, чем версия вашего проекта. См. меню Project->Properties->Java Compiler. По-умолчанию там всегда стоит 1.5 с совместимостью с 1.4. Сделайте как на скрине. Но если версия вашего JAR файла больше, чем 1.6, то вам ничего не поможет - только перекомпиляция JAR с версией 1.6 или найдите версию библиотеки постарее.
     

    Вложения:

    • screen.png
      screen.png
      Размер файла:
      24,4 КБ
      Просмотров:
      12
  5. imendan

    imendan Well-Known Member

    Регистрация:
    22 сен 2010
    Сообщения:
    97
    Симпатии:
    0
    Уже ни раз пытался, но после перезагрузки клиента Designer настройки переходят в изначальный вид (1.5). Где-то вычитал, что разработчики Lotus специально так сделали.
     
  6. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
  7. imendan

    imendan Well-Known Member

    Регистрация:
    22 сен 2010
    Сообщения:
    97
    Симпатии:
    0
    Пробовал ((( Увы и ах... Даже не знаю, или руки мои кривые. Перегружаю клиента, все равно проставляется 1.5. Хоть застрелиться (((
     
  8. garrick

    garrick Lotus team
    Lotus team

    Регистрация:
    26 окт 2009
    Сообщения:
    773
    Симпатии:
    52
    @imendan, я чего-то не понял. Ваш вопрос касается одного конкретного агента, который выдаёт ошибку java.lang.UnsupportedClassVersionError или настроек всего Дизайнера в целом?
     
  9. imendan

    imendan Well-Known Member

    Регистрация:
    22 сен 2010
    Сообщения:
    97
    Симпатии:
    0
    Этот вопрос касается конкретного агента, при запуске которого выходит ошибка. Как решение данной ошибки предполагалось изменить настройки Дизайнера, но как видите не получается и это сделать.
     
  10. garrick

    garrick Lotus team
    Lotus team

    Регистрация:
    26 окт 2009
    Сообщения:
    773
    Симпатии:
    52
    @imendan, Я вас не понимаю. Вам же дали рецепт. Открываете своего агента, открываете меню Project-Properties... делаете настройки как в моём сообщении выше, компилируете ваш агент, закрывает и запускаете. Что из этого не работает? Что не получается?
     
  11. imendan

    imendan Well-Known Member

    Регистрация:
    22 сен 2010
    Сообщения:
    97
    Симпатии:
    0
    Все понятно! Проблема с клиентом на моем рабочем месте. Версия Java Compling не меняется. Те же самые действия произвел на домашнем ноуте, все успешно поменялось и апплет заработал. Буду переустанавливать клиента. Благодарю всех за помощь, @garrick @savl @alexas1
     
  12. imendan

    imendan Well-Known Member

    Регистрация:
    22 сен 2010
    Сообщения:
    97
    Симпатии:
    0
    И все же проблема не решилась. Версия компилинга проекта поменялась (Project-Properties... ), но версию компилинга клиента (File - Preferences - Java - Compiler) поменять не получается никак. Пробовал на нескольких клиентах - везде такая же ситуация.
    Выходит та же ошибка (UnsupportedClassVersionError: JVMCFRE003 неверная основная версия; класс=, смещение=6)
    Я изрядно помучался. Получил по просьбе сборку апплета Джава версией 1.5, но выходит другая ошибка - NoClassDefFoundError: javax.smartcardio.CardException. Я в билд паф указал ссылку на апплет (в Жава директории), содержащий этот класс и у меня снова выходит ошибка о смещении версии = 6. В апплете (Жавы 1.5) этого класса еще не было. Капец, круговорот одного и того же. Помогите, мне пожалуйста. Есть мой скайп, ник - Strelog. Буду добр, если кто сможет помочь через демонстрацию... Прошу, я в глубокой печали, Господа!!!
     
  13. garrick

    garrick Lotus team
    Lotus team

    Регистрация:
    26 окт 2009
    Сообщения:
    773
    Симпатии:
    52
    Ещё раз по шагам:
    1. Версия Domino Designer 8.5 или выше;
    2. Свойства проекта настраиваем как рекомендовано Project->Properties->Java Compiler-> 1.6 (как на картинке выше);
    3. Копилим нашего агента в этом проекте:

    Применяем готовый агент по назначению и радуемся.
    Я никак не могу понять что вы там пытаетесь настроить и что у вас не получается.
    Зачем это?
    Это уже при запуске агента собранного в соответствии с рекомендациями настройки проекта? Вы его вообще скомпилили с указанными настройками?
     
  14. imendan

    imendan Well-Known Member

    Регистрация:
    22 сен 2010
    Сообщения:
    97
    Симпатии:
    0
    @garrick Может я неправильно компилю Джава-агент?
    Можете дать инструкцию?
     
  15. garrick

    garrick Lotus team
    Lotus team

    Регистрация:
    26 окт 2009
    Сообщения:
    773
    Симпатии:
    52
    @imendan,
    1. Открываете код агента в дизайнере;
    2. Делаете настройки проекта, как описано. Если вы уже делали это ранее, настройки должны были сохраниться. Проверьте, что всё правильно.
    3. В меню Project, напротив пункта Build Automatically должна стоять галочка;
    4. Внесите какие-либо изменения в код агента (добавьте пустую строку или напишите что-то, а потом удалите);
    5. Закрываете агента. При закрытии должно спросить о сохранении. Если не спрашивает, значит вы ничего не меняли и дизайнер не будет компилировать код агента.

    Всё!
     
  16. imendan

    imendan Well-Known Member

    Регистрация:
    22 сен 2010
    Сообщения:
    97
    Симпатии:
    0
    @garrick

    Аккуратно все выполняю, соблюдая все детали. В результате то же смещение версии.
    Я могу организовать сессию через Тимвьюер. Все что угодно... Так больше не может продолжаться. Мне уже сниться кодебай.форум )))
     
  17. garrick

    garrick Lotus team
    Lotus team

    Регистрация:
    26 окт 2009
    Сообщения:
    773
    Симпатии:
    52
    Остаётся только предположить, что тот JAR файл, который вы пытаетесь "прикрутить" к агенту собран версией 1.7 или 1.8. Общий смысл этой ошибки - версии библиотек выше, чем версия проекта. По дефлоту лотус делает Java проекты в версии 1.5 (мы с вам настройками проекта подняли версию до 1.6). Если ваши библиотеки (JAR файлы), которые вы подключаете к проекту, имеют версию более 1.6, вы получите подобную ошибку. Поднять версию Java в Lotus Notes выше 1.6 на текущий момент невозможно. Если библиотека имеет исходные коды, перекомпилите её.
     
  18. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    @garrick,
    @imendan,
    в дизайнер можно подключить внешнюю JRE, которая установлена на компе.
    Preference -> Java -> Istalled JRE
    Но как использовать это я не нашел... Возможно это для плагинов и xpage только
     
  19. garrick

    garrick Lotus team
    Lotus team

    Регистрация:
    26 окт 2009
    Сообщения:
    773
    Симпатии:
    52
    @savl, дизайнер, по большому счёту, это обычный Eclipse, подключить к нему можно всё что угодно, но Lotus Notes всегда будет запускаться только со своей JVM.
     
  20. proteam

    proteam Well-Known Member

    Регистрация:
    2 мар 2012
    Сообщения:
    144
    Симпатии:
    2
    Уважаемые форумчане, нашли решение? У меня точно такая же ситуация как у @imendan . Не могу никак поднять версию JDK. У меня есть внешний .JAR, собранный для 1.6. Но при запуске выходит ошибка как в названии темы.
    Меняю настройки (рис 1), сохраняю, билд. Открываю заново - снова 1.5 (рис 2)

    ЗЫ: Я пытаюсь поменять в данный момент JDK у дефолтного агента, без сторонних jar файлов. Все равно не могу(
     

    Вложения:

    • 1.png
      1.png
      Размер файла:
      36,3 КБ
      Просмотров:
      3
    • 2.png
      2.png
      Размер файла:
      41,3 КБ
      Просмотров:
      2
    #20 proteam, 7 сен 2015
    Последнее редактирование модератором: 7 сен 2015

Поделиться этой страницей