Soru:
Bir Java sınıfı dosyasının derleyici sürümünü bulun
user187
2013-03-27 21:24:44 UTC
view on stackexchange narkive permalink

Bir java sınıf dosyam var. Bu dosyayı derlemek için kullanılan derleyicinin sürümünü nasıl bulabilirim? 12.04 Ubuntu Sunucusundayım.

üç yanıtlar:
user187
2013-03-27 21:24:44 UTC
view on stackexchange narkive permalink

JDK, bir javap komutu içerir. Çok fazla bilgi verir, ancak şu şekilde kullanabilirsiniz:

  javap -verbose yourClass | grep sürüm  

Örnek çıktı:

  ikincil sürüm: 0 ana sürüm: 51  

Ana sürüm size derleyicinin sahip olduğu sürüm:

  J2SE 8 = 52, J2SE 7 = 51, J2SE 6.0 = 50, J2SE 5.0 = 49, JDK 1.4 = 48, JDK 1.3 = 47, JDK 1.2 = 46 , JDK 1.1 = 45  
45 için, tam derleyici sürümü alt sürüme bağlıdır. 45.3'ün 1.0.2 olacağına inanıyorum.
Bu aslında size sınıf dosyası biçiminin sürümünü söyler, derleyicinin sürümünü veya onu oluşturmak için kullanılan diğer aracı değil. "javac", JDK'nın önceki sürümlerini hedefleyen sınıf dosyalarını oluşturmak için "-target" veya "--release" bayrağını destekler.
Sürümü almanın bir yolu var ama kodda mı?
0xC0000022L
2013-03-27 22:11:02 UTC
view on stackexchange narkive permalink

Yine file (1) yardımcı programı ve onun dayandığı libmagic (3) , arkadaşınız olabilir:

  $ file Gwan.classGwan.class: derlenmiş Java sınıfı verileri, sürüm 50.0 (Java 1.6)  
Ya Windows'daysanız?
@avgvstvs: o zaman yine Cygwin gibi bir şeye başvurabilirsiniz. Dürüst olmak gerekirse, RCE çabalarınızı tek bir ana işletim sistemi ile sınırlandırarak kendi araç setinizi sınırlarsanız, bu sizin hatanızdır. Basitçe söylemek gerekirse: Hangi araçları ne zaman kullanacağınızı bilin ve keyfi ve yapay sınırlamalara dayanarak seçici olmayın.
Cygwin, gereksiz bir bağımlılık getirir. * .Class dosyalarını tersine çeviriyorsanız, * her * JVM'de "javap" a erişiminiz olacaktır. Söylediklerinizin geri kalanına katılmıyorum, ama tembelim ve bir vm veya d / l cygwin başlatmak zorunda kalmazsam daha mutluyum.
Sachin Kokate
2017-07-27 07:01:51 UTC
view on stackexchange narkive permalink

Bunu komut satırında arıyorsunuz (MyClass adlı bir sınıf için):

Unix / Linux'ta:

  javap -verbose MyClass | grep "major"  

Windows'ta:

  javap -verbose MyClass | findstr "major"  

Sonuçlardan ana sürümü istiyorsunuz. İşte bazı örnek değerler:

  • Java 1.2 ana sürüm 46'yı kullanır
  • Java 1.3 ana sürüm 47'yi 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


Bu Soru-Cevap, otomatik olarak İngilizce dilinden çevrilmiştir.Orijinal içerik, dağıtıldığı cc by-sa 3.0 lisansı için teşekkür ettiğimiz stackexchange'ta mevcuttur.
Loading...