3

これはまだ 100% 関連性があるわけではありませんが、非常に興味があります。JDK8 では、javac パラメータの「source」と「target」は非推奨であり、JDK9 で削除されます。JavaME 開発者として、古いプラットフォームをターゲットにするにはどうすればよいか考えています。たとえば、Blu-ray 向けの開発ではターゲット 1.3 を使用しています。「ターゲット」オプションがない場合、JDK9 がリリースされたときに Blu-ray 用の Xlets をコンパイルするにはどうすればよいですか? 古いデバイスをターゲットにする必要がある人は他にもいるはずです (ただし、多くは同意できませんが)。JDK9が出たらどうする?

編集:JDK9で1.3をターゲットにすることさえ可能ですか?

4

2 に答える 2

5

「ターゲット オプションなしでコンパイルする方法」という質問に答えるために、新しい -release フラグは、-source および -target のより安全で信頼性の高い代替手段です。詳細については、 JEP-247を参照してください。-source および -target と同じように、-release を使用して古いプラットフォームをターゲットにします。

「ソースとターゲットは JDK9 で削除される」というステートメントは、ある程度正しいですが、完全でありません。JEP-182より: 「JDK 9 では、1.5 以前のソースまたはターゲットのサポートが削除されます。」

「JDK9 で 1.3 をターゲットにすることは可能ですか?」という質問に答えるには、答えは、-release フラグに関して、JDK9 はターゲット 1.3 にコンパイルされないということです。

javac -help から:

--release <release>
      Compile for a specific VM version. Supported targets: 6, 7, 8, 9

最良のオプションは、古いバージョンの JDK でコンパイルすることです。1.3 をターゲットにする必要がある場合でも、Java 9 コンパイラを使用する理由はあまりありません。

于 2016-09-24T00:33:17.273 に答える
1

私は、Java 8で非推奨になり、Java 9で削除されたことを認識し-sourceておらず-target、Java 9で削除されています-早期アクセスビルド(少なくとも9-b131)にはまだそれらがあります。そのソースはありますか?

私が知っているその分野での唯一の変更はJEP 247です。これ-releaseは、他の 2 つのショートカットのようなものです。

于 2016-09-22T12:41:19.853 に答える