6

JDK 1.6 を使用してコンパイルしたときに JRE 1.5 で実行する Java コードをビルドするオプションはありますか?

PS:私はJavaが初めてです。

4

4 に答える 4

10

コードを 1.6 でコンパイルすると、1.5 では実行されません。1.5 で実行する場合は、1.5 でコードをコンパイルすると、両方で実行できます。

1.5 でコンパイルしてみて、エラーがあれば投稿してください。1.5 でコンパイルされない唯一の方法は、コードで特定の 1.6 拡張機能を使用する場合です。


本当の質問に答えるために。

  javac -target 1.5

詳しくはこちらをご覧ください。

于 2009-12-18T11:16:51.313 に答える
10

はい、できます。http://java.sun.com/javase/6/docs/technotes/tools/windows/javac.htmlを参照して、「クロスコンパイル オプション」セクションを探してください。つまり、javac に -target=1.5 を指定する必要があります。もちろん、Ant もこのフラグをサポートしています。

于 2009-12-18T13:11:36.043 に答える
6

javac の「-source」および「-target」オプションを見てください。

http://java.sun.com/javase/6/docs/technotes/tools/windows/javac.html

・ソースリリース

受け入れられるソース コードのバージョンを指定します。release には次の値を使用できます。

  • 1.3 コンパイラは、JDK 1.3 以降に導入されたアサーション、ジェネリック、またはその他の言語機能をサポートしていません。
  • 1.4 コンパイラは、JDK 1.4 で導入されたアサーションを含むコードを受け入れます。
  • 1.5 コンパイラは、JDK 5 で導入されたジェネリックおよびその他の言語機能を含むコードを受け入れます。
  • 5 1.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 の値です。
于 2009-12-18T11:26:03.697 に答える
4

それはすべて、使用している API によって異なります。Swing、Instrumentation、JConsole などは時間とともに変化します。

試してみると:

http://www.coderanch.com/t/382318/Java-General/java/New-Features-Java

最新の各メジャー バージョンの違いを示すページへのリンクがあります。

http://java.sun.com/javase/6/webnotes/features.html

最新バージョンの変更/新機能のリストです。

うまくいけば、それはあなたにいくつかのアイデアを与えるでしょう.

そしてもちろん、その JRE で実行するには、1.5 でコンパイルする必要があります。

于 2009-12-18T11:18:40.637 に答える