18

バックグラウンド

これは、あなたが考えるほどすぐに理解できるものではありません。

まず、Oracle は 2013 年 2 月の時点で Java 6 のパブリック サポートを停止していますが、Premier サポートは 2013 年 12 月に、Extended サポートは 2016 年 12 月に予定されているため、多少のロングテールがあります。その上に、永遠に続く可能性のある持続的なサポートがあります。

次の主要な Java ベンダーである IBM は、Java 6 のサポート終了を公表していないようです(2013 年 9 月までは Java 5 を引き続きサポートしています!)。

3 つ目は、Apple です。2013 年 6 月に最新のパッチが適用され、「同社はサポート ポリシーを明快に説明していない」ため、誰もが推測しているように見えますが、Java 5 の処理が基礎として使用されると、さらに 18 か月ほどかかる可能性があります... 2014 年末ですか?

最後に、OpenJDK があります... Red Hat は、現在サポートしていると述べています...

また、他の JVM 実装については、実際に見られるより一般的なものだけを検討することすら始めていません。

つまり、これまでのところ、Oracle/IBM/Red Hat に支払うお金がある限り、無期限にサポートされている Java 6 バージョンを入手し続けることができます...

おそらく、この質問をもう少しうまく組み立てて、不明確な答えを得るチャンスを得ることができます。

  • 特定の JVM が実行されるハードウェア/オペレーティング システムを購入できなくなった場合、その特定の JVM が引き続きサポートされるかどうかは、少し問題になります。延長サポート契約は、既存のシステムによって既存のニーズが満たされている可能性が高い既存の顧客向けで、新しいシステムに変更できない場合に提供されます。

    これは実際に Apple に関する状況を示しています... Apple ハードウェアは 5 年間 (カリフォルニアの場合は 7 年) サポートされているため、サポートされている唯一の Apple ハードウェアは x86 ベースのハードウェアである必要があります。切り替えは2006 年 12 月までに完了しています (最後の PPC ベースです)。 Apple ハードウェアが出荷される)ので、実際には、PPC で動作する Apple Java バージョンについて心配する必要はありません。

    同様に、古いバージョンの Windows で実行される Java のバージョンを除外することもできます。つまり、2014 年 4 月に Java インストーラーが Windows 7 以降で動作しない場合、Windows XP でサポートされている Java バージョンを事実上無視できるということですか?

  • 私が本当に興味を持っているのは、開発者ツールが Java の最小バージョンをいつ進めることができるかということです。

    Jenkinsはしばらくの間 Java 5 のサポートを維持してきましたが、新しい変更により、1.520+にはマスターとスレーブで Java 6 以降が必要になります。これにより、一部のビルド スレーブ (レガシー ハードウェアなど) が新しい JVM を実行できない場合に問題が発生する可能性があります。

    Mavenには、単体テストを実行するために JVM を J2SE 1.3 にフォークできる長い歴史がありますが、Surefire 2.15の時点では、Java 5 までの単体テストの実行のみをサポートします。

    -sourcejavac は、および...に関して1 回および 3 回戻るポリシーに移行している-targetため、Java 6 ソースファイルのサポートが javac から削除される前に、JDK 10 まで待つ必要があります... 2 年間のリリース頻度と Java 8 の予定これは、2016 年初頭に JDK9 が、2018 年初頭に JDK10 がリリースされることを意味します... しかし、JDK9 は、さらに 3 年間、公的に維持されて利用可能になります。

質問

OSS 開発者ツールチェーンが Java 7 より前の JVM のサポートを終了できる時期を確立するために使用できる明確な日付はありますか?その日付はいつですか?

OSS 開発者は通常、延長/プレミアム/持続タイプのサポート契約を購入するための資金を持っておらず、あいまいな/メインフレーム ハードウェアにアクセスできない可能性が非常に高いため、OSS の区別は重要です。

更新:「Java 7 より前の JVM のサポートを中止する」とは、ツールチェーン全体を安全にコンパイルできることを意味します。-target 7つまり、バイトコードを実行するには Java 7 が必要です。

更新 2:これは、組み立てられているように、事実に基づいて答えられる質問である必要があります。正解は次のいずれかになります。

明確な答えはありません。「Java 6 で OSS の人々に無料のアップデートを提供している一部の人々」へのリンクがあります。

また

はい、YYYY-MM-DD という決定的な日付があり、これがその証拠です

4

1 に答える 1

13

OSS 開発者ツールチェーンが Java 7 より前の JVM のサポートを終了できる時期を確立するために使用できる明確な日付はありますか?その日付はいつですか?

いいえ、そのような日付はありません。

ツール チェーンを開発している人々は、好きなときに EOL になったバージョンの Java のサポートを自由にドロップできます...またはまったくサポートしません。仮説として、個人 (または企業) が他の企業 (顧客など) と一定期間サポートを提供する契約を締結した場合、それらの契約は明らかに彼らを制約します。ただし、それがプロジェクト全体を制約する可能性は低いです。

(ただし、実際には、Java の古いバージョンのサポートを維持することはますます難しくなっています。開発者は、ツールチェーンのコードベースで新しい Java 機能を使用できるようにしたいと考えています。ツールチェーンを使用してレガシー Java のコードを開発しますが、最新の Java でツールチェーンを実行する必要があります)。

Java コード ベースの OSS バージョンの場合、あなた (Java のユーザー) の方が有利な立場にあります。

  • これを行うことが商業的に実行可能になる時点をはるかに超えて、一定レベルのコミュニティサポート/開発が行われる可能性があります。

  • そうでない場合は、ソースコードにアクセスできるので、(理論的には) 自分でサポートするか、誰かにお金を払って代わりにやってもらうことができます。


スティーブ・コノリーは次のようにコメントしています。

OSS コミュニティはサポート契約を結ぶことができません。

それは完全に間違っています。

OSS コミュニティの誰でも、OSS 製品のサポートを提供する契約を締結できます。それが実際に、一部の開発者が開発を続けるためのお金を稼ぐ方法です。

さらに、すべての主流の OSS ライセンスでこれが許可されています... GPL とそのすべてのバリアントを含みます。

しかし、OSS コミュニティが開発者を成長させることができないのであれば、費用を負担せずに技術にまったくアクセスできないため、Java 7 より前のサポートは不可能であると見なされます。

それも間違っています。

Sun (以前) と、現在は Oracle が、無料バージョンの Java の EOL バージョンの無料ダウンロードを提供しています... Java 1.1 までさかのぼります。EOL によって可用性が変わることはありません。これは実際には、最近発見されたセキュリティの問題やその他のバグに対する古いバージョンの Java のパッチ リリースが利用可能になることに関するものです。あなたはそれを支払わなければなりません。(まあまあです。作業を行うにはオラクルのお金がかかります。)

問題は、Java 5 以前がソース コード形式で自由に入手できることです。つまり、Java 5 のセキュリティ ホールを (たとえば) 修正するという選択肢は現実的にありません。対照的に、Java 6にはその選択肢があります。OpenJDK 6 コードベースはオープン ソースとしてリリースされており、これを取り消すことはできません。さらに、Java 7 と Java 8 もオープン ソースであるため、人々は Java 7 と 8 のセキュリティ修正を追跡し、OpenJDK 6 コードベースへの変更をバックポートしようとすることができます ...

于 2013-07-16T09:02:57.337 に答える