50

JDK7Eclipse3.6M6をインストールしました。次に、Eclipseの新しいJRE実行環境としてJRE 7を追加し、コンパイラのコンプライアンスレベルをJava 7に設定しましたjavac。JDK7に付属のを使用して、コマンドラインから次のコードをコンパイルできます。

import java.util.HashMap;
import java.util.Map;

public class Try {

    public static void main(String[] args) {
        Map<Integer, String> map = new HashMap<>();
    }
}

ただし、Eclipseは次のエラーメッセージを表示します。

タイプHashMapの引数の数が正しくありません。引数でパラメータ化することはできませんTry.java/TryJava7 /src7行目Javaの問題

トークン「<」の構文エラー、?このトークンの後に期待されるTry.java/TryJava7 /src7行目Javaの問題

コンパイラーのコンプライアンスレベルをJava7に設定しましたが、EclipseはまだJava7構文を理解していないようです。EclipseでJava7を使用することは可能ですか?

以下はの内容です.classpath

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
  <classpathentry kind="src" path="src"/>
  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
  <classpathentry kind="output" path="bin"/>
</classpath>

そして、以下はの内容です.settings/org.eclipse.jdt.core.prefs

eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.7
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.7
4

5 に答える 5

40

Alexが指摘したように、Eclipseは現在Java 7をサポートしていない独自のコンパイラを使用しており、Eclipseプロジェクトのプロジェクト計画バージョンHeliosに記載されているように、Java 7のサポートは延期され、3.6リリースから切り離されています。

  • (新着)延期)JavaSE7機能のサポートを追加します。Java SEの次の機能リリースはバージョン7で、おそらく2010年の後半に利用可能になります。このリリースの内容はまだ検討中ですが、そのリリースには、型の注釈を含むJava言語の拡張機能が含まれる予定です。 (JSR-308)、モジュール性のサポート(JSR-294)、およびその他のマイナーな言語変更(Coinプロジェクト)。Eclipse Javaツールには、公に利用可能な仕様(現時点ではJSR-308のみ)を持つ部分のJava 7のアプリケーションのコンパイル、編集、および起動の初期サポートが含まれます。[JDTコア、JDT UI](288548

    注:スケジュールをJava 7の公式リリースの遅れに合わせるため、および公開されている仕様の欠如(Java 7 JSRの欠如を含む)のために、開発作業を別のブランチに移動し、 3.6リリース。そのブランチでは、Java 7の機能が一般公開されたときに、それらの機能を引き続き開発します。Java 7機能への早期アクセスを提供するために、公式ビルドの個別の更新を提供します。

于 2010-04-14T17:00:28.220 に答える
18

Java 7 の Eclipse の継続的なサポートについては、 http://wiki.eclipse.org/JDT_Core/Java7http://wiki.eclipse.org/PDE/API_Tools/Java7、およびバグ 288548を参照してください。 Eclipse で Java 7 を評価する方法については、.eclipse.org/JDT/Eclipse_Java_7_Support_%28BETA%29を参照してください。

更新 1:ブランチBETA_JAVA7は and にマージされましたHEAD( eclipse-dev アーカイブR3_7_maintenanceを参照してください)。

更新 2: Eclipse 3.7.1 (Indigo SR1) は Java 7 をサポートしています

于 2011-02-02T15:39:15.970 に答える
6

Eclipse には独自の Java コンパイラが組み込まれています。したがって、すでに Java 7 をコンパイルできる Eclipse ベータ版などがない場合は、運が悪いでしょう。

Netbeans が動作するはずです。

于 2010-04-14T15:38:45.933 に答える
3

次の CVS リポジトリ情報を使用して、org.eclipse.jdt.core のいわゆる JSR 308 ブランチをチェックアウトします。

Connection type: pserver
User: anonymous
Host: dev.eclipse.org
Port: Default
Repository path: /cvsroot/eclipse
Module: org.eclipse.jdt.core
Tag: JSR_308 (Branch)

次に、指示に従って、チェックアウトした JDT を Eclipse にインストールしました。続いて、JSR 308 型アノテーションを実行する小さな例org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/NegativeTypeAnnotationTest.javaを 調べて思いつきました。/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/TestAll.java

この時点で、タイプの注釈が存在する場合、ブランチは対応する新しい属性を .class ファイルでサポートおよび生成します。ただし、注釈プロセッサは機能していないようです。

于 2010-05-19T20:08:52.513 に答える
2

Java 7サポート(ベータ版)がJDTで利用できるようになりました。http://thecoderlounge.blogspot.com/2011/06/java-7-support-in-eclipse-jdt-beta.htmlを参照してください

于 2011-06-28T19:35:50.090 に答える