[JAVA] Ich versuche nicht, meine eigene Annotationsverarbeitung in Eclipse zum Laufen zu bringen
Als ich versuchte, meinen eigenen Anmerkungsprozess zu erstellen und ihn in Eclipse zum Laufen zu bringen, blieb ich auf verschiedene Weise stecken. Machen Sie sich also eine Notiz.
Umgebung
Java
openjdk 10.0.2
Eclipse
Photon (4.8.0)
※Pleiades All in One
OS
Windows 10
Annahme
In Memo-Qiita zur Verwendung der Plug-in-Annotationsverarbeitungs-API finden Sie eine Erläuterung der Annotationsverarbeitung selbst und deren Ausführung in Eclipse.
Laden schlägt fehl
Symptome
Ich erhalte die Fehlermeldung "Die Annotationsprozessor-Factory ... konnte nicht geladen werden" in dem Projekt, das den Annotationsprozess festgelegt hat.
Ich war ratlos, weil ich nicht wusste, was los war, weil ich keine detaillierten Informationen hatte.
Ursache
- Die Version der JVM, auf der Eclipse ausgeführt wird, ist älter als der Code, der den Anmerkungsprozess geschrieben hat
――Nachdem Sie verschiedene Dinge ausprobiert haben, blieb der Anmerkungsprozess auch in der alten Version von Eclipse hängen.
- In dieser Eclipse wurde eine detaillierte Fehlermeldung angezeigt und der Fehler "Nicht unterstützte major.minor Version xxx" ist aufgetreten.
- Da die im Projekt verwendete Java-Version dieselbe war, habe ich festgestellt, dass das Programm, auf dem der Anmerkungsprozess ausgeführt wird, die JVM-Version von Eclipse zu sein scheint.
Überprüfen Sie die Version der JVM, auf der Eclipse ausgeführt wird
- Starten Sie die Befehlszeile auf dem Computer, auf dem Eclipse ausgeführt wird, und führen Sie "jcmd" aus
> jcmd
6184 sun.tools.jcmd.JCmd
18860
- Der Eclipse Java-Prozess gibt nur die Prozess-ID aus
- Geben Sie
VM.version
mit dieser Prozess-ID als Argument aus
> jcmd 18860 VM.version
18860:
Java HotSpot(TM) 64-Bit Server VM version 25.162-b12
JDK 8.0_162
Sie können sehen, dass es bei ―― 8 funktioniert.
Wie soll man antworten
- Führen Sie Eclipse auf einer Java-Version aus, die mit der Version Ihres Anmerkungscodes kompatibel ist
NoClassDefFoundError tritt auf
Status
- Es wurde versucht, während der Annotationsverarbeitung automatisch Quellcode mit JavaPoet zu generieren
Symptome
- Die im Annotationsprozess verwendete JavaPoet-Klasse kann nicht gefunden werden und führt zu "NoClassDefFoundError".
Ursache
- Eine Bibliothek, die vom Factory-Pfad abhängt, wird in den Einstellungen für die Annotationsverarbeitung von Eclipse nicht hinzugefügt.
Wie soll man antworten
- Fügen Sie die während der Annotationsverarbeitung verwendete Bibliothek (in diesem Fall JavaPoet) ebenfalls dem Factory-Pfad hinzu.