2

アプリケーションで動作するヘッドレス PDE ビルドを取得しようとしていますが、ビルド中にコンパイルが失敗し、次のメッセージが表示されます。

  ERROR in C:\...\TimerManager.java 
           [javac]  private final Map<String, ScheduledFuture<?>> activeTimer = new HashMap<>();
           [javac]                                                                  ^^^^^^^
           [javac] '<>' operator is not allowed for source level below 1.7

次の設定が行われます。

  • build.properties ファイルでは、次のプロパティが設定されています。

       CDC-1.1/Foundation-1.1 = ${java.home}/lib/rt.jar
       JavaSE-1.7 = ${java.home}/lib/rt.jar
       path.jre = C:/Programme/Java/jre7
       javacSource=1.7 
       javacTarget=1.7
    
  • ビルドされたプラグインの最小実行環境は JavaSE-1.7 です。

  • ビルドに使用されるワークスペースは、Java 7 を正常に使用します。

アプリケーションの製品をEclipseで正常に実行できます。

おそらく重要な点は、ターゲット プラットフォーム (Eclipse 3.7.0 rcp_sdk からのプラグインと機能を含む) を${baseLocation}PDE のように使用することbuild.xmlです。

ビルドが成功するように Eclipse 3.7.1 インストールを使用します${baseLocation}が、生産的な使用のためには、アプリケーション内の一部の Eclipse プラグインを置き換えるターゲット プラットフォーム プラグインが必要です。

build.xmlこのタスクでビルドを開始します。

<ant antfile="${eclipse.pdebuild.scripts}productBuild/productBuild.xml" />

baseLocation が原因で間違ったコンパイラが使用されている可能性はありますか? または、ソース レベルを定義する別の場所はありますか?

Target Platform for PDE ...${eclipse.pdebuild.scripts}に従って、Eclipse 3.7.1 インストールの PDE プラグインがインストールされ、正しく設定されています。

4

2 に答える 2

1

「3.7.0 ターゲット プラットフォーム」で org.eclipse.osgi_3.7.0.v20110613.jar の代わりにプラグイン org.eclipse.osgi_3.7.1.R37x_v20110808-1106.jar を使用すると、コンパイルとビルドが成功します。

しかし、古い org.eclipse.osgi-plugin でのコンパイルが失敗する理由は、私には明らかではありません。依存関係解決エラーなどを期待していました。

誰かがそのトピックに関する背景情報を持っていれば幸いです。

于 2011-11-17T12:41:58.630 に答える
0

ありがとうございます。Eclipse Indigo を SR2 にアップグレードすることで機能しました。

于 2012-11-29T15:49:11.317 に答える