Vor einigen Tagen habe ich die gleiche Frage wie Ihre gestellt. Der gesamte Code läuft gut auf meinem lokalen Computer, stellt sich jedoch als Fehler heraus (noclassdeffound & initialize). Also poste ich meine Lösung, aber ich weiß nicht warum, ich mache nur eine Möglichkeit. Ich hoffe, jemand weiß, dass dies erklärt wird. @ John Vint Zuerst zeige ich Ihnen mein Problem. Mein Code hat sowohl eine statische Variable als auch einen statischen Block. Als ich dieses Problem zum ersten Mal traf, versuchte ich die Lösung von John Vint und versuchte, die Ausnahme abzufangen. Ich habe jedoch nichts gefangen. Also dachte ich, es liegt daran, dass die statische Variable (aber jetzt weiß ich, dass sie dasselbe sind) und immer noch nichts gefunden hat. Also versuche ich den Unterschied zwischen dem Linux-Computer und meinem Computer zu finden. Dann stellte ich fest, dass dieses Problem nur auftritt, wenn mehrere Threads in einem Prozess ausgeführt werden (der Linux-Computer verfügt übrigens über doppelte Kerne und doppelte Prozesse). Das heißt, wenn zwei Tasks (beide verwenden den Code mit statischen Blöcken oder Variablen) im selben Prozess ausgeführt werden, geht dies schief. Wenn sie jedoch in unterschiedlichen Prozessen ausgeführt werden, sind beide in Ordnung. In der Linux-Maschine benutze ich
mvn -U clean test -Dtest=path
Um eine Aufgabe auszuführen, und weil meine statische Variable darin besteht, einen Container zu starten (oder vielleicht einen neuen Klassenladeprogramm zu initialisieren), bleibt sie so lange bestehen, bis die JVM stoppt, und die JVM stoppt nur, wenn alle Aufgaben in einem Prozess gestoppt sind. Jede Aufgabe startet einen neuen Container (oder Klassenlader) und verwirrt das JVM. Infolgedessen tritt der Fehler auf. Also, wie kann man das lösen? Meine Lösung besteht darin, dem Befehl maven einen neuen Befehl hinzuzufügen und jede Aufgabe in denselben Container zu verschieben.
-Dxxx.version=xxxxx #sorry can't post more
Vielleicht haben Sie dieses Problem bereits gelöst, hoffen aber dennoch, dass es anderen hilft, die das gleiche Problem haben.