ビルド時に警告メッセージが表示されます!
警告:[オプション] -source 1.5と組み合わせて設定されていないブートストラップクラスパス
どうすれば修正できますか?
<version>[1.7.0,1.7.0-79]</version>
て、少なくともビルドではなく明確なメッセージでビルドを中断する範囲を強制しました。あいまいなメッセージでテストします。
ビルド時に警告メッセージが表示されます!
警告:[オプション] -source 1.5と組み合わせて設定されていないブートストラップクラスパス
どうすれば修正できますか?
<version>[1.7.0,1.7.0-79]</version>
て、少なくともビルドではなく明確なメッセージでビルドを中断する範囲を強制しました。あいまいなメッセージでテストします。
回答:
ブログ投稿から:
JDK Nのjavacを使用して古いバージョンのプラットフォームにクロスコンパイラするには、正しい方法は次のとおりです。
- 古い-source設定を使用します。
- 古いプラットフォームのrt.jar(または同等のもの)に対してコンパイルするようにbootclasspathを設定します。
2番目の手順を実行しない場合、javacは古いライブラリのルールを新しいライブラリと組み合わせて忠実に使用します。これにより、存在しないメソッドへの参照が含まれる可能性があるため、古いプラットフォームではクラスファイルが機能しなくなる可能性があります。
ブートクラスパスの使用法
javac -bootclasspath /usr/lib/jvm/java-7-oracle/jre/lib/rt.jar \
-source 1.7 Main.java
UNIXシステムでは、次を使用rt.jar
して検索します。
locate -r '/rt.jar$'
がにあるJAVA_HOME
ように設定rt.jar
し$JAVA_HOME/jre/lib/rt.jar
、次に:
javac -source 1.7 -bootclasspath "$JAVA_HOME/jre/lib/rt.jar" Main.java
Oracle Java 7および8のUbuntu 14.04でテスト済み。
私は現在、Java -version = 1.7.0_65のLinux Mint 17.1でJDK 1.8を使用してNetbeans IDE 8.0.2を実行しています。したがって、JARファイルを実行できるようにするには、myProject> Properties> Source / Binary Format:JDK 7を設定する必要がありました。ただし、ビルド(myProject> Clean and Build)すると、同様の警告が表示されました。 -source 1.7と組み合わせて。
解決策は、Linux Mint JDK1.7プラットフォームをNetbeansプラットフォームリストに追加することでした。
これを行うには、myProject> Properties> Librariesに移動し、Manage Platforms ...ボタンをクリックします。次に、Javaプラットフォームマネージャーウィンドウで、[プラットフォームの追加...]をクリックして、[Java Standard Edition]をクリックし、[次へ]をクリックして、/ usr / lib / jvm / java-7-openjdk-amd64(またはJDK 1.7バージョンの場所を問わず)を参照します。 )。プラットフォーム名はJDK1.7に設定されます。[完了]をクリックするだけで完了です。
これで、プロジェクトプロパティでJavaプラットフォームを選択できます。JDK1.7を選択してClean and Buildを実行すると、警告は表示されなくなります。:-)
警告は、-Xlintファミリ内の新しいJDK 7サブオプション、-Xlint:-optionsで無効にできます。例えば
$ javac -source 1.5 -Xlint:-options example.java
ソース:https : //blogs.oracle.com/darcy/entry/bootclasspath_older_source
そして
http://docs.oracle.com/javase/7/docs/technotes/tools/solaris/javac.html#xlintwarnings
-Xlintオプションで有効または無効にできる警告
オプション-Xlint:nameで警告名を有効にします。nameは次の警告名のいずれかです。同様に、オプション-Xlint:-name:...を使用して警告名を無効にすることができます。
optionsコマンドラインオプションの使用に関する問題について警告します。この種の警告の例については、クロスコンパイルの例を参照してください。
jdkのバージョンとJavaコンパイラのソースバージョンが同じであることを確認してください。たとえば、mavenを使用していて、JDK 9を使用してプロジェクトをセットアップしている場合、pomスニペットに従うと上記の警告が表示されます
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
...
</configuration>
</plugin>
ソース/ターゲットバージョンを9に修正すると、次のように警告が修正されます
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>9</source>
<target>9</target>
...
</configuration>
</plugin>