バージョン 1.7 の Java で正常に動作する code.jar がありますが、バージョン 1.6 の Linux で別のコンピューターを使用するとエラーが発生します。どうすればバージョン 1.6 で実行できますか?
5 に答える
を呼び出すときに、クロスコンパイル オプションを使用しますjavac
。
オプションのみが-target
他のほとんどの返信で推奨されているように指定されている場合、1.7 SDK は に関する警告を発行します-bootclasspath
。このオプションにはrt.jar
、ターゲット JRE バージョンが必要です ( JDK ではないことに注意してください)。これにより、コンパイラは、コア Java SE を参照するコードのクラス、メソッド、および属性が実際に .xml に存在することを確認できますrt.jar
。これは、互換性を確保するために非常に重要です。
コードが古いJava互換性フラグでコンパイルされていない場合、1.6で実行することはできません。
Eclipse で Java 6 を使用してプロジェクトをビルドします。Java 1.6 JRE をダウンロードする必要があります。次に、Eclipse が 1.6 JRE を指すようにします。http://www.cleartoolkit.com/dokuwiki/doku.php?id=clearwiki:20 を参照してください。 cleardatabuilder:01.setup:01.prerequisites
プロジェクトを右クリック -> [プロパティ]、[Java コンパイラ] の順にクリックし、[プロジェクト固有の設定を有効にする] のチェックを外し、[ワークスペース設定の構成] をクリックして、コンパイラの準拠レベルとして 1.6 を選択します。
プロジェクトを再度エクスポートする「こと」を実行すると、新しいjarが機能するはずです。
お役に立てれば。
低いバージョンで高いバージョンのクラスを実行することはできないと思います。
別のアプローチは、設定されたターゲットバージョンを1.6としてコンパイルする場合です。
例:
javac yourFile.java -target 1.6
私はEclipse内で解決策を見つけました!
プロジェクトに移動し、右クリックしてプロパティにアクセスすると、Java Compiler というタブがあります。プロジェクト固有のプロパティを有効にして、JDK 準拠のチェック ボックスをオフにすると、ソースの互換性と .class ファイルの互換性を 1.6 に変更できます。
これで問題が解決し、生成された .jar ファイルが両方のデバイスで動作するはずです。ファイルを 1.8 から 1.7 に移動し、OpenJDK 1.7 を搭載した Raspberry Pi でテストして、これをテストしました。これが役立つことを願っています。