セカイノカタチスマートフォン用の表示で見るセカイノカタチ世界のカタチを探求するブログ。関数型言語に興味があり、HaskellやScalaを勉強中。Javaの今後のサポートについて考察したのですが、1点漏れていた議論がありました。Javaのランタイムエディション(JRE)のサポートについてです。結論から言うと、JREは強い後方互換を保ってアップデートされるため、「常に最新版を使い続けろ」です。最新版を使っていればパッチが提供され続けます。この点について、ちょっと複雑で誤解している人もいるかもしれないので、簡単に説明します。最新の外部ライブラリでは動かないかもしれないよく、「Javaはバージョン間の互換性がない」という言葉を聞くことがありますが、実際には「1.」を指す場合が多いと思います。確かに、Javaは、ソースコードレベルでは、新しい構文が追加され、過去の書き方が一部変更になったりするので、コンパイルが通らなくなります。それはコンパイラのバージョンによる非互換なため、ランタイムの非互換とは別の話になります。過去にコンパイルしたClassファイルを使うのであれば、最新JREで問題なく*1動くはずです。逆に、最新のJDKでコンパイルしたClassファイルを過去のJREで動かそうとするとバージョンチェックに引っかかり動きません。最新のClassファイルには、最新のJREの機能が必要かもしれないからです。これは、素直に実行環境のJREを最新版にしましょう。それで問題ないはずです。Commonsなどの外部ライブラリを利用している場合、こちらのバージョンが変更するとエラーになる可能性がありますが、これはJRE/JDKとは別の話になります。mavenなどを利用して、jarのバージョンを統一すれば回避できます。JDKが有償化した場合にJREはどうなるのか?」ですが、オラクル社はあまり気にせずに最新版のJREを提供し続けるのだと思います。こちらは半年サイクルとは別に、セキュリティアップデートがあれば、必要なタイミングでアップデートされるでしょう。そもそも、JDK側は開発者が開発環境で使用するため、セキュリティアップデートについてもランタイム側ほど優先度が高くありません(低いってわけでもないけど、比較的ってことです)。そのため、半年ごとのメジャーアップデート以外で、セキュリティパッチが出ることはあまり考えられないと思います。「古いバージョンを使っていても、重大なセキュリティホールがあればアップデートされるんでしょ?」という意見は見当違いという事になります。古いJDKを使っていても、JREは最新版を使おうもうそれでいいでしょ・・・*2。世界中で30億デバイスに搭載されているプロ...2015-02-03PDF出力ライブラリlibHaruを使うPDF出力ライブラリとしてlibharuを使ってみることに。はてなブログProシステム開発の世界で15年の山の民による、世界のカタチを探求するブログ。(4)はてなブログをはじめよう!qtamakiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。