getTimeStamp () не найден в исполняемом фляге, но найден иначе - PullRequest
4 голосов
/ 13 мая 2011

У меня проблемы с развертыванием приложения, которое нормально работает в eclipse, но выдает следующую ошибку при создании исполняемого jar-файла (используя опцию: извлечь необходимые библиотеки в сгенерированный JAR ):

org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.NoSuchMethodError: org.apache.log4j.spi.LoggingEvent.getTimeStamp()J)
        at org.eclipse.swt.SWT.error(Unknown Source)
        at org.eclipse.swt.SWT.error(Unknown Source)
        at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Unknown Source)
        at org.eclipse.swt.widgets.Display.runAsyncMessages(Unknown Source)
        at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
        at org.eclipse.jface.window.Window.runEventLoop(Window.java:820)

Я использую log4j-1.2.16.jar, и он включен в сгенерированный jar.

Я не уверен, где устранить неполадки, я пытался найти другие (более старые) экземпляры org.apache.log4j.spi.LoggingEvent в других jar-файлах, которые включены, но пока я не нашелесть.

Ответы [ 2 ]

7 голосов
/ 13 мая 2011

В нем говорится, что не существует метода org.apache.log4j.spi.LoggingEvent.getTimeStamp () Найдите снова ваши классы, которые находятся на пути к классам, и вы должны дважды найти класс org.apache.log4j.spi.LoggingEvent . Один с методом, один без метода.

1 голос
/ 13 мая 2011

Я использую log4j-1.2.16.jar, и он включен в сгенерированный jar.

Загрузчики классов Java не предназначены для работы с Jar внутри Jar.Можно поместить ресурсы (классы и т. Д.) Jar в другой Jar (я думаю, с помощью инструмента «FatJar» в Eclipse), но это может нарушить EULA.

Обычный способ включить Jar в путь класса времени выполнения приложения - добавить файл манифеста, в котором указан относительный путь к Jar.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...