0

この件に関して他にも質問があることは知っていますが、すべて試してみましたが、うまくいきませんでした。rcp プラグインから Excel ファイルに出力を書きたいのですが、次のように表示されます。

 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. poi jar を特定のフォルダー (例: META-INF フォルダー) に配置してから、それらをクラスパスに追加する必要がありますか?
  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 コミュニティが役立つと確信しています! 事前にサンクス!

4

1 に答える 1

1

これは次の理由によるものです。

start() メソッドに到達する前に、最初にクラスをロードしようとして ClassNotFoundException が発生しました。

したがって、この問題を解決するには:

  1. .次の画像を参照して、クラスパスに追加する必要があります。

    ここに画像の説明を入力

  2. ビルドと にソースとして scr を追加.しますbin.includes。以下の画像を参照してください。

    ここに画像の説明を入力

于 2014-03-21T07:09:57.060 に答える