Beberapa hari yang lalu, saya bertemu pertanyaan yang sama seperti pertanyaan Anda. Semua kode berjalan dengan baik di mesin lokal saya, tetapi ternyata kesalahan (noclassdeffound & inisialisasi). Jadi saya memposting solusi saya, tetapi saya tidak tahu mengapa, saya hanya mengajukan kemungkinan. Saya harap seseorang yang tahu akan menjelaskan ini. @ John Vint Pertama, saya akan menunjukkan masalah saya. Kode saya memiliki variabel statis dan blok statis keduanya. Ketika saya pertama kali menemukan masalah ini, saya mencoba solusi John Vint, dan mencoba menangkap pengecualian. Namun, saya tidak menangkap apa pun. Jadi saya pikir itu karena variabel statis (tapi sekarang saya tahu mereka adalah hal yang sama) dan masih belum menemukan apa pun. Jadi, saya mencoba mencari perbedaan antara mesin linux dan komputer saya. Kemudian saya menemukan bahwa masalah ini terjadi hanya ketika beberapa utas berjalan dalam satu proses (Omong-omong, mesin linux memiliki inti ganda dan proses ganda). Itu berarti jika ada dua tugas (keduanya menggunakan kode yang memiliki blok statis atau variabel) berjalan dalam proses yang sama, itu salah, tetapi jika mereka berjalan dalam proses yang berbeda, keduanya ok. Di mesin Linux, saya menggunakan
mvn -U clean test -Dtest=path
untuk menjalankan tugas, dan karena variabel statis saya adalah memulai sebuah wadah (atau mungkin Anda menginisialisasi classloader baru), maka itu akan tetap sampai jvm berhenti, dan jvm berhenti hanya ketika semua tugas dalam satu proses berhenti. Setiap tugas akan memulai sebuah wadah baru (atau classloader) dan itu membuat jvm bingung. Akibatnya, kesalahan terjadi. Lantas, bagaimana cara mengatasinya? Solusi saya adalah menambahkan perintah baru ke perintah pakar, dan membuat setiap tugas pergi ke wadah yang sama.
-Dxxx.version=xxxxx #sorry can't post more
Mungkin Anda sudah memecahkan masalah ini, tetapi masih berharap itu akan membantu orang lain yang mengalami masalah yang sama.