JDK 1.6 を使用して Java コードをビルドし、JRE 1.5 で実行することはできますか?
質問
JDK 1.6 を使用してコンパイルした場合に、JRE 1.5 で実行される Java コードをビルドするオプションはありますか?
追伸:私は Java を初めて使用します。
解決
それは1.5上では動作しません。あなたはそれが1.5で実行したいなら、あなたは1.5でコードをコンパイルすることができ、両方で実行できるようになります。
1.5でコンパイルしてみて、エラーがある場合は、それらを投稿してください。あなたのコード内の特定1.6の拡張機能を使用する場合、それは1.5でコンパイルされません唯一の方法です。
<時間>実際の質問に答えるます。
javac -target 1.5
ここの詳細についてを参照してください。
他のヒント
はい、できます。 http://java.sun.com/javase/を参照してください。 6 /ドキュメント/技術情報/ツール/窓/ javac.html との「クロスコンパイルオプション」を探してください。要するに、あなたは= javacに1.5を-target指定する必要があります。 Antはまた、当然のことながら、このフラグをサポートしています。
javac の「-source」および「-target」オプションを見てください。
http://java.sun.com/javase/6/docs/technotes/tools/windows/javac.html
-ソース リリース
受け入れられるソース コードのバージョンを指定します。リリースには次の値が許可されます。
- 1.3 コンパイラーは、アサーション、ジェネリック、JDK 1.3以降に導入されたその他の言語機能をサポートしていません。
- 1.4コンパイラは、JDK 1.4で導入されたアサーションを含むコードを受け入れます。
- 1.5コンパイラは、JDK 5で導入されたジェネリックおよびその他の言語機能を含むコードを受け入れます。
- 1.5の5同義語。
- 1.6 これはデフォルト値である。Java SE 6 では言語の変更は導入されませんでした。しかしだ、 のように、ソースファイルのエンコーディングエラーが警告ではなくエラーとして報告されるようになりました。 前略
- 6 1.6の同義語。
+
-目標 バージョン
指定されたバージョンの VM を対象とするクラス ファイルを生成します。クラス ファイルは、指定されたターゲットおよびそれ以降のバージョンでは実行されますが、以前のバージョンの VM では実行されません。有効なターゲットは、1.1 1.2 1.3 1.4 1.5 (5 も) および 1.6 (6 も) です。
-target のデフォルトは、-source の値によって異なります。- sourceが指定されない場合 targetの値は1.6
- -source が 1.2 の場合、-target の値は 1.4 です。
- -source が 1.3 の場合、-target の値は 1.4 です。
- -source の他のすべての値の場合、-target の値は -source の値となります。
それはすべてあなたが使用しているAPIをどのように依存します。時間をかけてスイング、計装、JConsoleのなどの変化のようなもの。
あなたがしようとした場合:
<のhref = "http://www.coderanch.com/t/382318/Java-General/java/New-Features-Java" のrel = "nofollowをnoreferrer" タイトル= "のhttp://www.coderanch .COM / T / 382318 / Javaの - 一般/ javaの/新機能 - Javaの "> http://www.coderanch.com/t/382318/Java-General/java/New-Features-Java の
これはで、最後のメジャーバージョンのそれぞれの違いを示すページへのリンクがあります:
<のhref = "http://java.sun.com/javase/6/webnotes/features.html" のrel = "nofollowをnoreferrer" タイトル= "http://java.sun.com/javase/6 /webnotes/features.html">http://java.sun.com/javase/6/webnotes/features.htmlする
最新バージョンで変更/新機能のリストされます。
うまくいけば、それはあなたにいくつかのアイデアを与えるでしょう。
そしてもちろん、あなたはそれがそのJREで実行するために取得するために1.5の下でそれをコンパイルする必要があります。