13

私はスタンドアロンのヘッドレスRCPに取り組んでいます。Eclipse IDEでアプリケーションと製品を実行すると問題なく動作しますが、エクスポートして実行すると、ログファイルにこのエラーが記録されます。

ここに画像の説明を入力してください

!ENTRY org.eclipse.equinox.ds 4 0 2013-01-16 13:27:59.132
!MESSAGE FrameworkEvent ERROR
!STACK 0
org.osgi.framework.BundleException: The bundle "org.eclipse.equinox.ds_1.4.0.v20120522-1841 [3]" could not be resolved. Reason: Missing Constraint: Import-Package: org.eclipse.equinox.internal.util.event; version="1.0.0"
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolverError(AbstractBundle.java:1332)
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.getResolutionFailureException(AbstractBundle.java:1316)
...

!ENTRY org.eclipse.equinox.ds 4 0 2013-01-16 13:28:00.901
!MESSAGE [SCR] Exception while activating instance org.eclipse.e4.ui.css.swt.internal.theme.ThemeEngineManager@6b8d6157 of component org.eclipse.e4.ui.css.swt.theme  
!STACK 0
java.lang.NoClassDefFoundError: org/eclipse/swt/widgets/Display
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2442)

この投稿を参照すると、依存関係のない新しいバージョンのプラグインがあり、ランタイムパスに問題があることを理解しています。ただし、このエラーの原因は正確にはわかりません。

何が悪いのでしょうか?スタンドアロンとして実行した場合にのみこのエラーが発生するのはなぜですか?

追加した

build.propertiesファイルがあります

output.. = bin/
bin.includes = META-INF/,\
               plugin.xml,\
               .
source.. = src/

これはMANIFEST.MFファイルです

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Refactorer
Bundle-SymbolicName: edu.utexas.seal.refactorer;singleton:=true
Bundle-Version: 1.0.0.qualifier
Bundle-Activator: edu.utexas.seal.refactorer.Activator
Bundle-Vendor: PROSSEEK
Bundle-RequiredExecutionEnvironment: J2SE-1.5
Bundle-ActivationPolicy: lazy
Require-Bundle: org.eclipse.core.runtime;bundle-version="3.8.0",
 org.eclipse.jdt;bundle-version="3.8.0",
 org.eclipse.jdt.core;bundle-version="3.8.2",
 org.eclipse.core.resources;bundle-version="3.8.1",
 org.eclipse.text;bundle-version="3.5.200",
 org.eclipse.jdt.ui;bundle-version="3.8.1",
 org.eclipse.jdt.core.manipulation;bundle-version="1.5.0",
 org.eclipse.ltk.ui.refactoring;bundle-version="3.7.0",
 org.eclipse.jdt.core.manipulation;bundle-version="1.5.0",
 org.eclipse.ltk.core.refactoring;bundle-version="3.6.0",
 org.eclipse.jface.text;bundle-version="3.8.1",
 org.eclipse.core.expressions;bundle-version="3.4.401",
 org.eclipse.core.externaltools;bundle-version="1.0.100",
 org.eclipse.jface;bundle-version="3.8.101",
 edu.utexas.seal.utilities;bundle-version="1.0.0",
 org.eclipse.core.filebuffers;bundle-version="3.5.200"
Bundle-ClassPath: .
Export-Package: edu.utexas.seal.refactorer

アイテムは1つだけです:「。」Bundle-ClassPath内。

4

3 に答える 3

7

org.eclipse.equinox.utilがありません

最初にプロジェクトを再コンパイルし、ログファイルの苦情から必要なプラグインがすべてあることを確認しました。その後、欠落していることがわかりましたorg.eclipse.equinox.util。自動的に含まれるはずだったと思います。インクルードした後、いくつかのエラーがなくなったばかりで、さらに2つのエラーがあることがわかりました。

ここに画像の説明を入力してください

実行環境の問題

「実行環境」をJavaSE-1.5として設定しましたが、Javaが@Overrideを認識できず、「スーパークラスメソッドをオーバーライドする必要があります」というエラーが発生するため、これは問題でした。

ここに画像の説明を入力してください ここに画像の説明を入力してください

このサイトからヒントを得ました。

プロジェクトをEclipseにインポートした後の「スーパークラスメソッドをオーバーライドする必要があります」エラー

ランタイムレベル

/ECLIPSE/configuration/config.iniまた、ファイルを変更する必要がありました。

osgi.bundles=org.eclipse.equinox.common@2:start,org.eclipse.update.configurator@3:
start,org.eclipse.equinox.ds@3 <-- (From 2 to 3) 
:start,org.eclipse.core.runtime@start

日食のバグかどうかはわかりませんが、このサイトからヒントを得ました。

私が役立つと思ったいくつかのヒント

  • -consoleLogいつもログファイルを開く必要がなかったので、本当に便利でした。
  • この記事は私に問題を解決する方法のいくつかの方向性を与えました。
  • EclipseRCPが製品としてEclipseIDEで動作するようになったら、スタンドアロンRCPを動作させる必要があると思います。そうでない場合、問題はIDEとスタンドアロンの違いを生む構成の問題であるはずです。
于 2013-01-16T21:16:34.680 に答える
1

不足しているバンドルを、追加の依存関係構成を介して、障害のあるバンドルに直接追加する可能性もあります。

<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<version>${tycho.version}</version>
<configuration>
  <dependency-resolution>
   <extraRequirements>
    <requirement>
     <type>eclipse-plugin</type>
     <id>org.eclipse.jface.text</id>
     <versionRange>0.0.0</versionRange>
   </requirement>
  </extraRequirements>
 </dependency-resolution>
</configuration>
</plugin>
于 2014-02-25T10:44:17.137 に答える
0

同じものをfeature.xmlファイルに追加する必要があります。同じものを追加したら、プロジェクトをクリーンアップして再ビルドしてみてください。これでこの問題は解決すると確信しています。

于 2015-02-24T12:13:00.923 に答える