2020年12月4日金曜日

JDK8と11の非互換

 仕事などでは古いJava環境を使っている場合もあり、そんななか、JDK11で8互換でビルドしてJDK8で動かないものがあったのでメモ

 NoSuchMethodError が

java.lang.NoSuchMethodError: java.nio.ByteBuffer.xxxx
と発生。
BufferとByteBufferは実装が変わっているようで、実装されている部分が何かで互換性がなくなっているっぽい。 
コードは互換になるがライブラリまでは見てくれないというJDKの罠はよくある。今回もそんなもののひとつか。
 詳細はこっちかな
 https://stackoverflow.com/questions/61267495/exception-in-thread-main-java-lang-nosuchmethoderror-java-nio-bytebuffer-flip

0 件のコメント:

コメントを投稿

DockerとPodman

DockerとかPodman とか仮想っぽいものをつついてみる。 Linuxのカーネルの機能で複数環境を切り盛りする系のいろいろ Dockerさん入れてみた Docker Compose 2種類あるよ というわけで進化も速いとドキュメントも古いぞ、ということになったり。 継ぎ接ぎ...