• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

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

imendan

Green Team
22.09.2010
159
4
BIT
0
Приветствую, Господа! Поднимаю старый вопрос, пытаюсь в Lotus Designer 9.0.1 создать Java-агент, который тянет классы из импортированного .jar файла. Выходит ошибочка
Exception in thread "AgentThread: JavaAgent" java.lang.UnsupportedClassVersionError: JVMCFRE003 неверная основная версия; класс=, смещение=6
Код:
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();

Эта тема создавалась в https://codeby.net/threads/50673/. Но решения так и не озвучены. Прошу помощи
 

alexas1

Green Team
10.04.2014
1 202
225
BIT
34
Похоже импортится скомпиленное на старой версии JDK
Резюм - перекомпилить
 

garrick

Lotus Team
26.10.2009
1 342
150
BIT
128
Версия импортированного JAR файла выше, чем версия вашего проекта. См. меню Project->Properties->Java Compiler. По-умолчанию там всегда стоит 1.5 с совместимостью с 1.4. Сделайте как на скрине. Но если версия вашего JAR файла больше, чем 1.6, то вам ничего не поможет - только перекомпиляция JAR с версией 1.6 или найдите версию библиотеки постарее.
 

Вложения

  • screen.png
    screen.png
    11,9 КБ · Просмотры: 499

imendan

Green Team
22.09.2010
159
4
BIT
0
Версия импортированного JAR файла выше, чем версия вашего проекта. См. меню Project->Properties->Java Compiler. По-умолчанию там всегда стоит 1.5 с совместимостью с 1.4. Сделайте как на скрине. Но если версия вашего JAR файла больше, чем 1.6, то вам ничего не поможет - только перекомпиляция JAR с версией 1.6 или найдите версию библиотеки постарее.

Уже ни раз пытался, но после перезагрузки клиента Designer настройки переходят в изначальный вид (1.5). Где-то вычитал, что разработчики Lotus специально так сделали.
 

savl

Lotus Team
28.10.2011
2 591
309
BIT
138
@imendan, попробуй
JavaCompilerTarget=1.6

Данная настройка не должна быть последней в файле
 

imendan

Green Team
22.09.2010
159
4
BIT
0
@imendan, попробуй
JavaCompilerTarget=1.6

Данная настройка не должна быть последней в файле

Пробовал ((( Увы и ах... Даже не знаю, или руки мои кривые. Перегружаю клиента, все равно проставляется 1.5. Хоть застрелиться (((
 

garrick

Lotus Team
26.10.2009
1 342
150
BIT
128
@imendan, я чего-то не понял. Ваш вопрос касается одного конкретного агента, который выдаёт ошибку java.lang.UnsupportedClassVersionError или настроек всего Дизайнера в целом?
 

imendan

Green Team
22.09.2010
159
4
BIT
0
@imendan, я чего-то не понял. Ваш вопрос касается одного конкретного агента, который выдаёт ошибку java.lang.UnsupportedClassVersionError или настроек всего Дизайнера в целом?

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

garrick

Lotus Team
26.10.2009
1 342
150
BIT
128
@imendan, Я вас не понимаю. Вам же дали рецепт. Открываете своего агента, открываете меню Project-Properties... делаете настройки как в моём сообщении выше, компилируете ваш агент, закрывает и запускаете. Что из этого не работает? Что не получается?
 

imendan

Green Team
22.09.2010
159
4
BIT
0
@imendan, Я вас не понимаю. Вам же дали рецепт. Открываете своего агента, открываете меню Project-Properties... делаете настройки как в моём сообщении выше, компилируете ваш агент, закрывает и запускаете. Что из этого не работает? Что не получается?
Все понятно! Проблема с клиентом на моем рабочем месте. Версия Java Compling не меняется. Те же самые действия произвел на домашнем ноуте, все успешно поменялось и апплет заработал. Буду переустанавливать клиента. Благодарю всех за помощь, @garrick @savl @alexas1
 

imendan

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

garrick

Lotus Team
26.10.2009
1 342
150
BIT
128
Ещё раз по шагам:
1. Версия Domino Designer 8.5 или выше;
2. Свойства проекта настраиваем как рекомендовано Project->Properties->Java Compiler-> 1.6 (как на картинке выше);
3. Копилим нашего агента в этом проекте:

Применяем готовый агент по назначению и радуемся.
Я никак не могу понять что вы там пытаетесь настроить и что у вас не получается.
но версию компилинга клиента (File - Preferences - Java - Compiler) поменять не получается никак. Пробовал на нескольких клиентах - везде такая же ситуация.
Зачем это?
Выходит та же ошибка (UnsupportedClassVersionError: JVMCFRE003 неверная основная версия; класс=, смещение=6)
Это уже при запуске агента собранного в соответствии с рекомендациями настройки проекта? Вы его вообще скомпилили с указанными настройками?
 

garrick

Lotus Team
26.10.2009
1 342
150
BIT
128
@imendan,
  1. Открываете код агента в дизайнере;
  2. Делаете настройки проекта, как описано. Если вы уже делали это ранее, настройки должны были сохраниться. Проверьте, что всё правильно.
  3. В меню Project, напротив пункта Build Automatically должна стоять галочка;
  4. Внесите какие-либо изменения в код агента (добавьте пустую строку или напишите что-то, а потом удалите);
  5. Закрываете агента. При закрытии должно спросить о сохранении. Если не спрашивает, значит вы ничего не меняли и дизайнер не будет компилировать код агента.

Всё!
 

imendan

Green Team
22.09.2010
159
4
BIT
0
@garrick

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

garrick

Lotus Team
26.10.2009
1 342
150
BIT
128
Остаётся только предположить, что тот JAR файл, который вы пытаетесь "прикрутить" к агенту собран версией 1.7 или 1.8. Общий смысл этой ошибки - версии библиотек выше, чем версия проекта. По дефлоту лотус делает Java проекты в версии 1.5 (мы с вам настройками проекта подняли версию до 1.6). Если ваши библиотеки (JAR файлы), которые вы подключаете к проекту, имеют версию более 1.6, вы получите подобную ошибку. Поднять версию Java в Lotus Notes выше 1.6 на текущий момент невозможно. Если библиотека имеет исходные коды, перекомпилите её.
 

savl

Lotus Team
28.10.2011
2 591
309
BIT
138
@garrick,
@imendan,
в дизайнер можно подключить внешнюю JRE, которая установлена на компе.
Preference -> Java -> Istalled JRE
Но как использовать это я не нашел... Возможно это для плагинов и xpage только
 

garrick

Lotus Team
26.10.2009
1 342
150
BIT
128
@savl, дизайнер, по большому счёту, это обычный Eclipse, подключить к нему можно всё что угодно, но Lotus Notes всегда будет запускаться только со своей JVM.
 
P

proteam

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

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

Вложения

  • 1.png
    1.png
    14,7 КБ · Просмотры: 464
  • 2.png
    2.png
    17,8 КБ · Просмотры: 309
Последнее редактирование:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!