Java uygulamanızı çalıştırmak istediğinizde “java.lang.UnsupportedClassVersionError: Unsupported major.minor version 53” veya 52,51,50,49,48,47,46,45 gibi hatalar alabilirsiniz. Bu hataları “java” komutunu kullanırken, destekleyen tarayıcılar üzerinde çalıştırılan Applet ler çalıştırılırken, entegra geliştirme ortamınızda java uygulamanızı veya kodunuzu çalıştırırken veya Maven ve Ant gibi proje inşa araçları ile çalışırken alabilirsiniz.
Bu hatayı almanızın sebebi mesela “java.lang.UnsupportedClassVersionError: Unsupported major.minor version 53” şeklinde bir hata aldıysanız bunun anlamı Java 8 ile derlenen uygulamanızı daha küçük bir JRE veya JDK versiyonu ile çalıştırmayı denemenizdir.
Bu sorunun çözümümlerinden birisi JRE veya JDK versiyonunuzu yükseltmektir. Entegre Geliştirme Ortamında ise JRE veya JDK için daha yüksek sürümünüzün yolunu classpath’den gösterebilirisiniz.
Java versiyonunu yükseltmek mümkün değil ise java kodunuzu daha düşük bir versiyon ile derleyiniz. Yani java dosyalarınızı derleyerek java class larını oluşturabilirsiniz.
Bilgisayarınızda birden fazla JRE yüklü ise “PATH environment variable” değeri ile uygun olan JRE yolunu gösterebilirsiniz. Birden fazla JRE yüklenmiş ise Ortam Değişkenlerinden “PATH” içerisindeki sırada düşük versiyonlu olan JRE yüksek versiyonlu olan JRE yoluna göre daha önce tanımlanmış olabilir.
Ya da başka bir çözüm olarak ise daha düşük bir versiyon kodunuzu derlemeniz gerekmektedir. Java kodunuzu aşağıdaki gibi derleyebilirisiniz.
javac -target 1.5 MyClass.java
Burdaki sorun Javanın eskiye uygunluğu olmasına rağmen yeniye uygunluğu olması doğal olarak mümkün olmadığındadır. Yani siz yeni versiyonda kullanılan bir özellikli derleme yaptığınızda bu derlenmiş olan sınıfınızı, JAR dosyanızı veya uygulamanızı eski versiyon ile çalıştıramazsınız.
Her Java sınıfının derlenme versiyonuyla ilgili bir sürüm bilgisi vardır.
Java sürümlerinin başlıcaları versiyonları aşağıdaki gibidir.
JDK 1.1 – 45
J2SE 1.2 – 46
J2SE 1.3 – 47
J2SE 1.4 – 48
J2SE 5.0 – 49
Java SE 6 – 50
Java SE 7 – 51
Java SE 8 – 52
Java SE 9 – 53
Java sınıfınızı Java 9 ile derlerseniz oluşan sınıflarınızın ana versiyonu 53 olacaktır. Ve siz bu java sınıfınız JRE6 altında çalıştırmak istedinizde “Unsupported major.minor version 53.0” hatası alırsınız.