2017-12-15 9 views
0

baseという名前のEclipse 4アプリケーションプロジェクトを作成し、そのbase.productを使用して実行しました。eclipse4 rcpプロジェクトの依存関係

:このプロジェクトMavenプロジェクト作った後、私は次の例外を受け取り、プロジェクトを実行しようとすると、この

btnNewButton.addMouseListener(new MouseAdapter() { 
     @Override 
     public void mouseDown(MouseEvent e) { 
      System.out.println("se presiono "+btnNewButton.getText()); 
      File file = new File("mi archivossss.txt"); 

      try { 
       FileUtils.writeStringToFile(file, "prueba de archvio"); 
      } catch (IOException e1) { 
       // TODO Auto-generated catch block 
       e1.printStackTrace(); 
      } 
     } 
    }); 

のようなファイル機能を使用するためにApacheのコモンズ-IOライブラリに依存関係を追加しました

java.lang.NoClassDefFoundError: org/apache/commons/io/FileUtils 
at base.parts.PrincipalPart$1.mouseDown(PrincipalPart.java:40) 
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:192) 
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84) 
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4353) 
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1061) 
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4172) 
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3761) 
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151) 
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332) 
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032) 
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148) 
at org.eclipse.e4.ui.internal.workbench.swt.E4Application.start(E4Application.java:164) 
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196) 
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134) 
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104) 
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:382) 
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:236) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648) 
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603) 
at org.eclipse.equinox.launcher.Main.run(Main.java:1465) 
at org.eclipse.equinox.launcher.Main.main(Main.java:1438) 
Caused by: java.lang.ClassNotFoundException: org.apache.commons.io.FileUtils cannot be found by base_1.0.0.qualifier 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:423) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:336) 
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:328) 
    at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:160) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    ... 25 more 

したがって、私は依存関係を手動で設定しましたが、これはうまく動作します。したがって、maven依存関係に関する設定上の問題です。しかし、私はそれを解決する方法を知らない。

+0

プロジェクトをどのように実行しましたか? – tkotisis

+0

私のproject.productファイルを右クリックしてEclipseアプリケーションとして実行 – Premier

+0

Eclipseは "Maven Dependencies"ライブラリをプロジェクトに表示しますか? – tkotisis

答えて

0

は正しい依存関係があなたのMavenののpom.xmlであることを確認してください:

<dependency> 
    <groupId>commons-io</groupId> 
    <artifactId>commons-io</artifactId> 
    <version>2.5</version> 
</dependency> 

はのM2eプラグインは、Eclipseにインストールされていることを確認します。

Eclipseでは、プロジェクトフォルダを選択して右クリックします。ポップアップでMavenの選択肢に移動し、次のダイアログで "Update Project"を選択して "OK"を選択します。これは、Mavenがクラスパス上のクラスをマシン上に置く方法です。

0

ここで重要な点は、このプロジェクトをEclipseアプリケーションとして実行していることです。

これで、maven依存関係を追加しようとしているプロジェクトがEclipseプラグインであると仮定します。

m2eはプラグインの依存関係を処理できないため、これは機能しません。

のEclipse以内にあなたの製品を実行できるようにするために(...>Eclipseのアプリケーションとしてすなわちラン)、あなたは、プラグインのマニフェスト(META-INF/MANIFEST.MF)からPlug-in Dependenciesとして依存関係を追加する必要があります。

また、Tychoを使用して製品を構築することもできます。

関連する問題