web-dev-qa-db-ja.com

NetbeansでJavaコンパイラを設定する方法

私はJava7開発に入り、JDK7をJava Platformsに追加し、プロジェクトのプロパティで選択しました。

しかし、コンパイル中に次のようなメッセージが表示されます。

warning: Java/lang/Boolean.class(Java/lang:Boolean.class): major version 51 is newer than 50, the highest major version supported by this compiler.
It is recommended that the compiler be upgraded.

そして

javac: invalid target release: 1.7
/Applications/NetBeans/NetBeans 7.1.app/Contents/Resources/NetBeans/harness/suite.xml:184: The following error occurred while executing this line:
/Applications/NetBeans/NetBeans 7.1.app/Contents/Resources/NetBeans/harness/common.xml:206: Compile failed; see the compiler error output for details.

私が理解している限りでは、Netbeansはjavac 1.6を使用しています。 1.7に変更するにはどうすればよいですか?

編集:

NetBeans Platformアプリを作成し、設定したメインアプリのプロパティでJavaプラットフォーム = JDK 1.7を作成しています。そして、モジュールのプロパティの1つでソースレベル = 1.7を設定しました。

EDIT2

  • Mac OS 10.7.3
  • NetBeans IDE 7.1(ビルド201112071828)
  • openjdkバージョン "1.7.0-internal"
  • OpenJDKランタイム環境(ビルド1.7.0-internal-uko_2012_02_15_11_51-b00)
  • OpenJDK 64ビットサーバーVM(ビルド23.0-b15、混合モード)

suite.xml(184はここの2行目です)

<target name="build" depends="-init,branding,release,-hide-excluded-modules" description="Build all modules in the suite.">
    <subant target="netbeans" buildpath="${modules.sorted}" inheritrefs="false" inheritall="false">
        <property name="cluster.path.evaluated" value="${cluster.path.evaluated}"/> <!-- Just for speed of pre-7.0 projects -->
    </subant>
</target>

common.xml(ここでは2行目が206です)

<nb-javac srcdir="${src.dir}" destdir="${build.classes.dir}" debug="${build.compiler.debug}" debuglevel="${build.compiler.debuglevel}" encoding="UTF-8"
        deprecation="${build.compiler.deprecation}" optimize="${build.compiler.optimize}" source="${javac.source}" target="${javac.target}" includeantruntime="false">
    <classpath refid="cp"/>
    <compilerarg line="${javac.compilerargs}"/>
    <processorpath refid="processor.cp"/>
</nb-javac>
21
Uko

プロジェクトを右クリック->プロジェクトのプロパティ

次に、SourcesSource/Binary FormatをJDK 7に設定します。

EDIT 1:

NetBeansの問題 があります:

Webプロジェクト固有の問題であるJ2SEプロジェクトで正常に動作します。問題は、fork = "false"というJDK 7.0パラメーターがJDK 6.0コンパイラーに渡されることです。実行可能ファイルにはfork = "true"が必要です。

Build-iml.xmlの293行目

<javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}"
encoding="${source.encoding}" excludes="@{excludes}"
executable="${platform.javac}" fork="${javac.fork}" includeantruntime="false"
includes="@{includes}" source="${javac.source}" srcdir="@{srcdir}"
target="${javac.target}" tempdir="${Java.io.tmpdir}">

になるはずです:

<javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}"
encoding="${source.encoding}" excludes="@{excludes}"
executable="${platform.javac}" fork="yes" includeantruntime="false"
includes="@{includes}" source="${javac.source}" srcdir="@{srcdir}"
target="${javac.target}" tempdir="${Java.io.tmpdir}">

EDIT 2(最初のヒントが機能しない場合):

JDK7でNetbeans IDEを実行してみてください。

Netbeans confファイルを編集します。

Linux

〜/ .netbeans/7.0/etc/app.conf

Mac Os X

/ Applications/NetBeans/NetBeans\7.1.app/Contents/Resources/NetBeans/harness/etc/app.conf

jdkhome=行にjdk7パスを追加します。

または

以下を使用してNetBeansを起動します。

netbeans --jdkhome/Java7/Home/dir

28
alain.janinm

NetBeans 8の更新:

編集するファイルは

/ Applications/NetBeans/NetBeans\8.0.app/Contents/Resources/NetBeans/harness/etc/app.conf

行を追加しました

jdkhome="/Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk"

netBeansを再起動し、コンパイルプラットフォームとしてJDK 1.7 U67を受け入れました。

1
whats_in_a_name

これは私のために働いたあなたはこれを試すことができます。

Netbeans 8.2を使用していて、それが使用していたjdkは1.8で、プロジェクトをJava 1.7のバージョン。オプション] [1]

ライブラリーをクリックします。

次に、ライブラリの管理をクリックします。 [ライブラリの管理] [2]

その後、プラットフォームを追加してur javapathを追加し、[Adding Java platform] [3]を閉じます

その後、プロジェクトをビルドできます。

0
mahesh