Jdbi: JDBI3 versi 3.19.0 tidak berjalan di JDK <11

Dibuat pada 12 Apr 2021  ·  7Komentar  ·  Sumber: jdbi/jdbi

Sesuai catatan rilis , saya berharap versi ini berfungsi pada JDK 8 dan seterusnya, tetapi saya mendapatkan kesalahan berikut:

java.lang.UnsupportedClassVersionError: com/github/benmanes/caffeine/cache/Caffeine has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 53.0

Versi kelas 55.0 adalah JDK 11, jadi ini tidak akan berfungsi pada JDK 8 dan seterusnya.
Ini terungkap dalam permintaan penggabungan berikut: https://github.com/talsma-ict/enumerables/pull/242

question

Komentar yang paling membantu

maaf ini sedikit untuk Anda: kafein tidak memiliki versi apa pun yang berjalan di jdk8 dan jdk16

Hanya fyi, masalah kompatibilitas di 2.x hanya untuk mereka yang ingin menonaktifkan sun.misc.Unsafe . Itu masih diperbolehkan di JDK16 secara default, tetapi dapat dibatasi melalui jlink. Tidak aman tidak lagi diperlukan di Caffeine 3.0 (melalui fallback), dan sepenuhnya dihapus pada master (mendatang 3.0.2). Pengetatan pembatasan akses di JDK16 tidak memengaruhi kami, tetapi JDK8 tidak dikirimkan dengan VarHandles sehingga kami terjebak menggunakan Tidak Aman (atau bermigrasi ke AtomicReferenceFieldUpdater yang memiliki masalah kinerja karena menggunakan refleksi saat mengakses bidang) .

Semua 7 komentar

Hai @sjoerdtalsma , maaf ini sedikit untuk Anda: kafein tidak memiliki versi apa pun yang berjalan di jdk8 dan jdk16. Sejak 16 sekarang GA, Jdbi ditingkatkan ke versi Caffeine yang kompatibel. Catatan rilis menyebutkan:

tingkatkan kafein dep ke 3.0.1 untuk jdk16 (CATATAN: pengguna jdk8 perlu mengelolanya kembali ke 2.x)

tapi saya setuju itu tidak terlalu menonjol.

Saya juga menambahkan catatan di sini: http://jdbi.org/#_Java_compatibility

Apakah ada cara agar kami dapat memberikan sinyal yang lebih baik kepada pengguna? Semoga setelah Anda mengelola versi kafein kembali ke 2.x semuanya berfungsi, tetapi beri tahu kami jika ada masalah lebih lanjut.

Saya membuat beberapa pembaruan pada catatan rilis untuk menyebut ini lebih menonjol. Beri tahu kami jika ada hal lain yang dapat kami lakukan lebih baik di sini.

Terima kasih, saya harap orang lain membaca sedikit lebih hati-hati daripada saya.
Ini bukan masalah bagi saya, tetapi sesuatu yang harus diwaspadai oleh pengguna perpustakaan saya dan ini adalah ketergantungan transitif dari ketergantungan transitif bagi mereka .

Saya memutuskan untuk tidak menurunkan kafein, tetapi tetap menggunakan versi standar dan hanya membangun dengan JDK yang lebih baru sambil tetap mengirimkan artefak bytecode JDK8. Dengan begitu saya serahkan kepada mereka untuk memutuskan sendiri.

Terima kasih atas penekanan ekstra, saya akan menutup masalah ini sekarang.

Ya, sangat disayangkan bahwa ini didorong ke pengguna akhir. Tetapi jika mereka menginginkan pengalaman pengembangan yang luar biasa, sekarang saatnya untuk memutakhirkan Java, itu hanya akan terus menjadi semakin sulit untuk dijalankan pada 8 ;)

Bayangkan mencoba menjaga kompatibilitas JDK 1.5 bytecode sambil menambahkan metadata jigsaw module-info.java untuk perpustakaan Anda
Saya mencoba untuk menjaga persyaratan terbatas pada penyebut yang paling tidak umum.

maaf ini sedikit untuk Anda: kafein tidak memiliki versi apa pun yang berjalan di jdk8 dan jdk16

Hanya fyi, masalah kompatibilitas di 2.x hanya untuk mereka yang ingin menonaktifkan sun.misc.Unsafe . Itu masih diperbolehkan di JDK16 secara default, tetapi dapat dibatasi melalui jlink. Tidak aman tidak lagi diperlukan di Caffeine 3.0 (melalui fallback), dan sepenuhnya dihapus pada master (mendatang 3.0.2). Pengetatan pembatasan akses di JDK16 tidak memengaruhi kami, tetapi JDK8 tidak dikirimkan dengan VarHandles sehingga kami terjebak menggunakan Tidak Aman (atau bermigrasi ke AtomicReferenceFieldUpdater yang memiliki masalah kinerja karena menggunakan refleksi saat mengakses bidang) .

hai @ben-manes, terima kasih atas konteks tambahannya di sini. Memang benar bahwa jdk16 memungkinkan Anda untuk tetap menggunakan Tidak Aman tetapi menurut saya itu tidak diizinkan secara default - setidaknya dalam kasus kami, kami harus melewati --illegal-access=permit karena defaultnya sekarang ditolak. Saya tidak ingin "pengalaman di luar kotak" untuk proyek jdk16 baru dengan Jdbi memerlukan sakelar jelek seperti itu, karenanya tingkatkan ke 3.x.

Terima kasih telah memperbarui untuk tidak menggunakan Unsafe lagi, kami senang melihatnya hilang :)

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

Romqa picture Romqa  ·  5Komentar

kkrgwbj picture kkrgwbj  ·  4Komentar

goxr3plus picture goxr3plus  ·  4Komentar

rherrmann picture rherrmann  ·  4Komentar

buremba picture buremba  ·  5Komentar