QA@IT

javaのサポート切れについて

8103 PV

問題提起

javaでアプリケーション作成している人は、java8への移行を進めていると思います。

ここで非常に気になるんですが、コンパイラは6のままで、vmだけ8にする対応を選択する人もいると思います。

これって意味あるんでしょうか?

疑問に思ってること

確かにjavaは強力な上記互換があるため、過去バージョンのコンパイラで作成した中間コードは、問題なく動くと思います。
また、コンパイラを変更しないことによって、新たなバグのリスクも発生しないと思います。

しかし、サポート切れってことは「コンパイラにセキュリティリスクが発生したらpatch当てれないのでは?」と思っており、

果たしてvmだけ上げることに意味はあるのでしょうか。
形式上の対応にしか思えません。
それともvmだけ上げておけば、バグやセキュリティのパッチ対応は問題ないんでしょうか。

回答

バグだとかセキュリティ脆弱性は単一の原因ではありません。
一括りに話しても答えは出ないでしょう。もうすこし広くみるべきかとは思います。
例えばバグを内包して作り込んだコードがjreの更新によって解決することは稀でしょう。

jreが新しくなることに意味はあるんでしょうかという点に関してはjreに起因するバグは修正されているのでしょうから意味はあると言わざるをえません。
端末レベルで言えばjreが更新されたことで利用しているツールの新しいバージョンが利用できるようになってセキュリティリスクが軽減することもあるでしょう(javaだとそもそもjre内包しているものも多いですけどね)

コンパイラのセキュリティリスクってどういうものを考えているかわかりませんが、
利用中のサポート切れjdkに新たな問題が発生した場合に報告されない/修正されない可能性は大きいですし、
その点ではお考えの通りセキュリティリスクを抱えていると言えますし、
jdkが更新できないためにライブラリも更新できないのであれば、ライブラリの脆弱性は引き続き修正されないままということもあるでしょう。

そもそもなぜjdkを更新できないのかに向き合うべきでしょう。ついでに言えば今更新するのに 8なんですか?っていう疑問も個人的にはあります。

編集 履歴 (0)
  • ご返信ありがとうございました。参考になりました。 -
ウォッチ

この質問への回答やコメントをメールでお知らせします。