0

Eclipse RCP でプラグインを開発しており、いくつかの ini ファイルを読み書きする必要があります。そのために、プロジェクトのビルドパスにjarをダウンロードして外部jarとして追加したini4jライブラリを使用しようとしています。

しかし、プロジェクトを起動してファイルを読み込もうとすると、次のエラーが発生します。

java.lang.NoClassDefFoundError: org/ini4j/InvalidFileFormatException
    com.mbtech.tools.dioaction.ui.commands.WriteConfigFileHandler.writeFiles (WriteConfigFileHandler.java:87) で
    com.mbtech.tools.dioaction.ui.commands.TransformHandler.execute (TransformHandler.java:40) で
    org.eclipse.ui.internal.handlers.HandlerProxy.execute (HandlerProxy.java:293) で
    org.eclipse.core.commands.Command.executeWithChecks (Command.java:476) で
    org.eclipse.core.commands.ParameterizedCommand.executeWithChecks (ParameterizedCommand.java:508) で
    org.eclipse.ui.internal.handlers.HandlerService.executeCommand (HandlerService.java:169) で
    org.eclipse.ui.internal.handlers.SlaveHandlerService.executeCommand (SlaveHandlerService.java:241) で
    org.eclipse.ui.menus.CommandContributionItem.handleWidgetSelection(CommandContributionItem.java:829)で
    org.eclipse.ui.menus.CommandContributionItem.access$19(CommandContributionItem.java:815) で
    org.eclipse.ui.menus.CommandContributionItem$5.handleEvent(CommandContributionItem.java:805)で
    org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) で
    org.eclipse.swt.widgets.Widget.sendEvent (Widget.java:1053) で
    org.eclipse.swt.widgets.Display.runDeferredEvents (Display.java:4165) で
    org.eclipse.swt.widgets.Display.readAndDispatch (Display.java:3754) で
    org.eclipse.ui.internal.Workbench.runEventLoop (Workbench.java:2696) で
    org.eclipse.ui.internal.Workbench.runUI (Workbench.java:2660) で
    org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494)
    org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674) で
    org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)で
    org.eclipse.ui.internal.Workbench.createAndRunWorkbench (Workbench.java:667) で
    org.eclipse.ui.PlatformUI.createAndRunWorkbench (PlatformUI.java:149) で
    com.mbtech.tools.dioaction.ui.Application.start (Application.java:42) で
    org.eclipse.equinox.internal.app.EclipseAppHandle.run (EclipseAppHandle.java:196) で
    org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication (EclipseAppLauncher.java:110) で
    org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79) で
    org.eclipse.core.runtime.adaptor.EclipseStarter.run (EclipseStarter.java:344) で
    org.eclipse.core.runtime.adaptor.EclipseStarter.run (EclipseStarter.java:179) で
    sun.reflect.NativeMethodAccessorImpl.invoke0(ネイティブメソッド)
    sun.reflect.NativeMethodAccessorImpl.invoke (不明なソース) で
    sun.reflect.DelegatingMethodAccessorImpl.invoke (不明なソース) で
    java.lang.reflect.Method.invoke (不明なソース) で
    org.eclipse.equinox.launcher.Main.invokeFramework (Main.java:622) で
    org.eclipse.equinox.launcher.Main.basicRun (Main.java:577) で
    org.eclipse.equinox.launcher.Main.run (Main.java:1410) で
    org.eclipse.equinox.launcher.Main.main (Main.java:1386) で
原因: java.lang.ClassNotFoundException: org.ini4j.InvalidFileFormatException
    org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:513)で
    org.eclipse.osgi.internal.loader.BundleLoader.findClass (BundleLoader.java:429) で
    org.eclipse.osgi.internal.loader.BundleLoader.findClass (BundleLoader.java:417) で
    org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107) で
    java.lang.ClassLoader.loadClass で (不明なソース)
    java.lang.ClassLoader.loadClassInternal で (不明なソース)
    ... 35以上

私は解決策をグーグルで調べましたが、プロジェクトが機能するようにするには、プロジェクトのクラスパスも更新する必要があるようです。しかし、プロジェクトを Eclipse アプリケーションとして起動していますが、[実行構成] ウィンドウに移動しても [クラスパス] タブがありません。

それが機能するために私は何ができますか?

4

1 に答える 1

1

plugin.xml エディターには、Runtime-Tab があります。このタブで、plugin-classpath にエントリを追加できます。瓶を追加すると、準備が整います..

于 2012-02-01T08:52:07.553 に答える