Java Version von Quellcode ermitteln

Gibt es ein Werkzeug mit dessen Hilfe man die verwendeten Sprachfeatures einzelner Versionen im Quellcode bestimmen kann?

Ziel ist es, die höchste Version zu erkennen und wenn möglich auch die Codestellen anzuzeigen.

Dazu eine “SchönWennZuHabenFunktionalität” JavaCodeConverter für automatische Konvertierung von Versionen.

Aehm… meinst du nicht eher „die niedrigste JDK Version mit der die Quellen kompiliert werden koennen“?

Java ist „rueckwaertskompatibel“, d.h. „die hoechste Version“ ist immer die letzte die rausgekommen ist :wink:

Ansonsten gibt es sowas m.E. nicht, wuesste ehrlich gesagt auch nicht wofuer.

1 „Gefällt mir“

ein ‚Werkzeug‘ wäre ein Eclipse oder eine sonstige IDE, bei der man das Compilation-Level Schritt für Schritt runterschalten kann,
was jeweils neu angemeckert wird ist neue Sprachfeatures :wink:

oder auch nur simple Änderungen, wie lange habe ich zwischen den Versionen hin und her mit @Override erlaubt oder nicht erlaubt bei Implementierung von Interfacen zu kämpfen gehabt…


automatische Konvertierung (also sicherlich von hoch auf niedrig?) gibts aber nun nicht, ziemlich heißes Eisen,
und welcher Code ist es nicht wert, dass sich ein Programmierer mit Kompetenz darum kümmert?

Stimmt, ein paar mehr Infos wären hier hilfreich. Es gibt ja den JavaCompiler mit dem man sowas (auf der untersten Ebene tatsächlich recht einfach) basteln könnte…

while (compiler.compile(code, version).hasErrors()) version += 0.1;

aber natürlich könnte man da (speziell, wenn es um die Versions-Konvertierung geht) beliebig weit gehen. Eclipse war zwar trotzdem ein gutes Stichwort, weil man damit relativ einfach einen AST aus dem Code erzeugen und darin dann nach Belieben rumpfuschen kann, aber das “relativ” ist hier schon sehr relativ: Das ist nichts, was man mal schnel hinhackt.

An die Möglichkeit in der IDE das Level schrittweise runterzustellen hatte ich gar nicht gleich gedacht. Danke für den Tipp.