2012-04-26 2 views
0

Я знаю, что есть другие вопросы по этому вопросу, но я их пробовал и не работал для меня. Я хочу написать некоторый вывод для файлов Excel из моего RCP пробки в но он показывает:Недействительный активатор

java.lang.NoClassDefFoundError: org/apache/poi/hssf/usermodel/HSSFWorkbook 

Так что я: plugin.xml->runtime tab-> add the poi jars in the classpath section.

Но тогда, когда я пытаюсь запустить, она показывает:

org.osgi.framework.BundleException: The activator spyros.getInfo.Activator for 
bundle spyros.getInfo is invalid. 

Мои вопросы:

  1. Должен ли я поставить пои банки в определенной папке (пример в папке META-INF), а затем добавить их в classpath?
  2. Как я могу исправить ошибку активатора?

Мои Manifest.mf

Manifest-Version: 1.0 
Bundle-ManifestVersion: 2 
Bundle-Name: GetInfo 
Bundle-SymbolicName: spyros.getInfo; singleton:=true 
Bundle-Version: 1.0.0.qualifier 
Bundle-Activator: spyros.getInfo.Activator 
Require-Bundle: org.eclipse.core.runtime, 
org.eclipse.jdt.core;bundle-version="3.7.1", 
org.eclipse.core.resources;bundle-version="3.7.100", 
org.eclipse.ui, 
org.eclipse.jdt.ui;bundle-version="3.7.1" 
Bundle-ActivationPolicy: lazy 
Bundle-RequiredExecutionEnvironment: JavaSE-1.6 
Import-Package: org.apache.commons.collections 
Bundle-ClassPath: lib/poi-3.8-20120326.jar, 
lib/poi-examples-3.8-20120326.jar, 
lib/poi-excelant-3.8-20120326.jar, 
lib/poi-ooxml-3.8-20120326.jar, 
lib/poi-ooxml-schemas-3.8-20120326.jar, 
lib/poi-scratchpad-3.8-20120326.jar 

Мои свойства сборки

output.. = bin/ 
bin.includes = plugin.xml,\ 
       META-INF/,\ 
       icons/,\ 
       lib/poi-3.8-20120326.jar,\ 
       lib/poi-examples-3.8-20120326.jar,\ 
       lib/poi-excelant-3.8-20120326.jar,\ 
       lib/poi-ooxml-3.8-20120326.jar,\ 
       lib/poi-ooxml-schemas-3.8-20120326.jar,\ 
       lib/poi-scratchpad-3.8-20120326.jar 

Мой plugin.xml

<?xml version="1.0" encoding="UTF-8"?> 
<?eclipse version="3.4"?> 
<plugin> 

    <extension 
     point="org.eclipse.ui.commands"> 
     <command 
      defaultHandler="spyros.getInfo.handlers.GetInfo" 
      id="spyros.getInfo.commands.GetInfo" 
      name="GetInfo"> 
     </command> 
    </extension> 
    <extension 
     point="org.eclipse.ui.menus"> 
     <menuContribution 
      allPopups="false" 
      locationURI="menu:org.eclipse.ui.main.menu"> 
     <menu 
       id="spyros.getInfo.commands.GetInfo" 
       label="My Info"> 
      <command 
        commandId="spyros.getInfo.commands.GetInfo" 
        label="Get Info" 
        style="push" 
        tooltip="Get Info from methods"> 
      </command> 
     </menu> 
     </menuContribution> 
    </extension> 

</plugin> 

Я так растерялся, но я уверен, что StackOverflow сообщество поможет, потому что ты лучший! Thanx заранее!

+1

решил его! Я нашел решение здесь: http://blog.chris-alex-thomas.com/2007/07/17/eclipse-activator-class-is-invalid/comment-page-1/#comment-19889 – spyros

ответ

1

Это происходит из-за:

Там было ClassNotFoundException пытается загрузить класс в первую очередь, прежде чем он даже попал в метод запуска().

Так что для решения этой проблемы:

  1. Вы должны добавить . в свой класс пути увидеть следующее изображение.

    enter image description here

  2. Добавить ОПЗ в качестве источника в вашей сборке и . в вашем bin.includes. Смотрите изображение ниже:

    enter image description here

Смежные вопросы