Isu Ketergantungan Modul dalam Java 9: "Tidak dapat memperoleh deskriptor modul untuk nama modul yang dijana secara automatik"
Ketidakupayaan untuk memperoleh deskriptor modul untuk nama modul yang dijana secara automatik dalam Java 9 timbul apabila mengisytiharkan kebergantungan pada perpustakaan yang mengandungi kata kunci terpelihara dalam nama modul mereka yang dihasilkan. Begitu juga dengan pengangkutan Epoll Netty, yang menjana nama modul yang mengandungi kata kunci "asli".
Java 9 memperkenalkan konsep modul, yang memerlukan pengisytiharan modul yang jelas. Walau bagaimanapun, nama modul yang dijana secara automatik mengikut konvensyen yang mungkin termasuk kata kunci terpelihara, yang membawa kepada konflik apabila mengisytiharkan kebergantungan secara eksplisit.
Penyelesaian:
Untuk menyelesaikan isu ini, dua pendekatan utama tersedia:
1. Pembungkusan dengan Automatic-Module-Name:
Perpustakaan boleh membungkus artifak mereka dengan fail META-INF/MANIFEST.MF yang menyatakan atribut Automatic-Module-Name. Atribut ini membolehkan perpustakaan mentakrifkan nama modul yang berbeza daripada yang dijana, yang boleh mengelakkan konflik kata kunci.
2. Menambah Pengisytiharan Modul pada JAR oleh Pemilik Perpustakaan:
Pemilik perpustakaan boleh menambah pengisytiharan modul yang diperlukan pada fail JAR mereka menggunakan fail module-info.java. Ini mengisytiharkan kebergantungan modul eksplisit dan memastikan keserasian dengan sistem modul Java 9.
Penjelasan:
Sintaks pengisytiharan modul Java menyatakan bahawa nama modul mesti terdiri daripada pengecam Java yang sah. Kata kunci tersimpan, seperti "asli," tidak dibenarkan sebagai pengecam, yang membawa kepada mesej ralat "Nama modul tidak sah: 'asli' bukan pengecam Java."
Untuk menangani perkara ini, spesifikasi sistem modul Java mencadangkan menukar tanda sempang dan aksara khas lain kepada garis bawah dan memberi awalan aksara atau kata kunci tertentu dengan garis bawah jika perlu. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa garis bawah juga menjadi kata kunci dalam Java 9, jadi penggunaannya sebagai awalan harus dilakukan dengan berhati-hati.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat \'Tidak dapat memperoleh deskriptor modul untuk nama modul yang dijana secara automatik\' Java 9?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!