Java sınıfı dosya biçimi ana sürüm numaraları listesi?


174

Java için büyük sürüm numaralarının bu listesini başka bir gönderide gördüm:

  • Java 1.2, ana 46 sürümünü kullanır
  • Java 1.3 ana sürümü 47 kullanır
  • Java 1.4 ana sürüm 48'i kullanır
  • Java 5, ana sürüm 49'u kullanır
  • Java 6, ana sürüm 50'yi kullanır
  • Java 7, ana sürüm 51'i kullanır
  • Java 8, ana sürüm 52'yi kullanır
  • Java 9, ana sürüm 53'ü kullanır
  • Java 10, ana sürüm 54'ü kullanır
  • Java 11, ana sürüm 55'i kullanır
  • Java 12, ana 56 sürümünü kullanır
  • Java 13, ana sürüm 57'yi kullanır
  • Java 14, ana sürüm 58'i kullanır

Referanslar:

https://blogs.oracle.com/darcy/entry/source_target_class_file_version https://en.wikipedia.org/wiki/Java_class_file#General_layout

Yanıtlar:


46

Bunlar sınıf versiyonundan gelir. Bir java 5 çalışma zamanında java 6 için derlenmiş bir şey yüklemeye çalışırsanız, uyumsuz sınıf sürümü, 50, beklenen 49 var hata alırsınız. Ya da böyle bir şey.

Bkz burada byte daha fazla bilgi için 7 ofset.

Ek bilgi burada da bulunabilir .


Ana sürüm numarasını (sınıf sürümü) , var olan bir sınıfı kullanmadan, doğrudan javac'tan yankılamanın bir yolu var mı javap -verbose MyClass?
samis

Hayır yok.
Stephen C


2

"Sınıf dosyasının hata derleyicisi" ile ilgili bir sorun yaşıyorsanız, projenin JRE'sini Eclipse aracılığıyla muhabiriyle değiştirerek bunu çözmek mümkündür.

  1. Derleme yolu
  2. Derleme yolunu yapılandır
  3. Kitaplığı, arkadaşınızın en son gösterdiği tablonun muhabiriyle değiştirin.
  4. "Jar dosyası" oluşturun ve derleyin ve çalıştırın.

Bunu ben yaptım ve işe yaradı.


0

Adresinde bir sınıf dosyanız build/com/foo/Hello.classvarsa, komutu kullanarak hangi java sürümünü derlediğini kontrol edebilirsiniz:

javap -v build/com/foo/Hello.class | grep "major"

Örnek kullanım:

$ javap -v build/classes/java/main/org/aguibert/liberty/Book.class | grep major
  major version: 57

OP'deki tabloya göre, ana sürüm 57, sınıf dosyasının JDK 13 bayt kodu düzeyine derlendiği anlamına gelir

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.