Servus,
Der Java 1.5 Compiler erzeugt standardmäßig 1.4 oder sogar noch älteren Bytecode (ich bin nicht sicher, ob die Unterstüzung von assert Anweisungen mittlerweile standardmäßig aktiviert ist)
Je nachdem wie man baut. Mit Ant muss man dem Compiler schon sehr genau sagen dass man was "altes" haben will.
Jedenfalls muss man per Komandozeilenparameter explizit angeben, dass man 1.5 Sourcen kompilieren und damit Bytecode erzeugen will, der auf älteren VMs nicht mehr lauffähig ist.
Bisher war es noch immer so, dass die JavaCompiler auch älteren Bytecode erzeugen konnten.
Nun ja, aber leider nicht x belibig alten Code.
die SDK 1.3.1 konnte meiens wissens nach noch 1.2.2 Code erzeugen jedoch keinen 1.1.x
Wie sich das mit 1.4 sowie 1.5 verhält weiss ich auch nicht so genau.
Allerdings betreibe ich die eine entsprechende SDK exakt für eine Java Version. Entwickle also auf den dafür vorgesehenen oder vorhandenen Features.
Allerdings hat die 1.5 noch einige Bugs die sich bei größeren Programmen durchaus mal durch VM-Abstürze bemerkbar machen. Von daher sollte man Vorläufig doch noch mit dem 1.4rer JDK vorlieb nehemen, wenn man nicht gerade experimentieren will.
Produktiv würde ich damit noch nicht entwicklen. Zudem ja leider sun so oder so etwas problematisch ist. Jrockit soll da schon deutich stabiler sein.
Gruss Matze