2013-04-08 18 views
21

yüzden warning: [options] bootstrap class path not set in conjunction with -source 1.6önyükleme sınıf yolu

getting- değilim ayarlanmamış Ve bu konuda 3 soru sormak üzereyim. Önyükleme sınıfı yolunu ayarlamam gerektiğini anlıyorum ama nasıl anladığımdan emin değilim. Hızlı bir Google, beni yalnızca Oracle sayfasından alıntılanan sayfalara gönderdi, ancak Oracle sayfasını okudum ve özellikle iyi anladığımı hissetmedim.

Şu anda bu derlemek ve çalıştırmak için bu yüzden tüm yapmanız gereken play düğmesine basın edilir Netbeans Bu kod çalıştırıyorum. Önyükleme sınıfı yoluna ekleyebilmem için bunun nasıl derleneceğini belirleyen bir özellik var mı?

Ayrıca, gelecekteki olasılığa karşı yalnızca Netbeans üzerinde çalışıp onu komut satırından çalıştıracağım için, oradaki bootstrap sınıf yolunu derlemenin doğru yolu nedir? $ javac -source 6 HelloWorld.java diyorlar ama sadece -source 1.6'u belirten bir çözüm mü?

Belki de daha da büyük bir soru, nasıl gelecekte uyarı bu tür engelleyebilirim? Biraz anlarsam, eski bir java kaynağına ve dolayısıyla eski yöntemlere başvuruyorum. Bunun nasıl ve ne zaman olduğundan emin değilim.

cevap

36

Çapraz derleme yapıyorsunuz. JDK 6 için sınıfları derlemek için bir JDK 7 derleyicisi kullanıyorsunuz. Bu sorun değil ama derleyici, JDK 6 rt.jar numaralı telefondan el ele geçirmek istiyor. Bunun arkasındaki mantık, aslında JDK 6 ile çalışmayan sınıflar oluşturabilmenizdir, çünkü eski dil kurallarını (bu durumda 1.6) kullanıyorsunuz, ancak yeni bootstrap sınıfları kullanıyor olabilirsiniz. Örneğin, eski JDK'da bazı yöntemler mevcut olmayabilir. Bu yüzden derlemenizi tamamlayın, ancak programı çalıştırdığınızda bir MethodNotFoundException ile patlayabilir.

çözümlerin

Çift, sadece hatta daha eski derleyici kullanmaz Neden bir

  • JDK 6. den rt.jar belirtin alabiliriz?
  • JDK 6 derleyicisini kullanın (rt.jar ürününü içerir). 7 özellik gerekmiyorsa neden 7'yi kullanmalıyım?
  • uyarıyı yok say ve Java 7 özellikleri
    • Ben NetBeans bilmem ama Eclipse da bu yüzden kazandı Eğer JDK 6 karşı derleme olduğunu söyleyebiliriz kullanılmadığından emin olmak için iyi bir test kapsama sahip Java 7 özelliklerini kullanırsanız aslında derleme.
  • değiştirme iş ihtiyaçları ve
+1

Teşekkür, Bu durumun nasıl giderildiğini hissediyorum. – Stephopolis

+7

Downvoting, çünkü nasıl yapılacağını öğrenmeksizin çeşitli çözümler veriliyor. – seansand

+0

@toomasr Lütfen eski bir JDK'ya geri dönmenin yerel makineniz üzerinde çalışmak kolay olduğunu anlayın (MacO'lar bir istisna btw'dir). (Daha büyük) şirketler için çalışırken, çoğu zaman JDK'nizi değiştiremezsiniz. Örneğin, hedeflediğiniz sunucu 1,6 ile hala sabit kalırken geliştirme makinenizde 1.7 kullanmanız gerekir. Tabii ki (sunucu yöneticileri) nihayetinde 1.7'ye geçene kadar bekleyebilir veya bir profesyonel gibi davranır ve işini bitirirsiniz. Seçiminiz ne olurdu? – whaefelinger

1

Sadece bu kadar kullandığınız JDK 1.7 sağlanan Proje özelliklerine sağ tıklayın ve ardından gitmek Bağlama gidip seçim Java 7 için derlemek için NetBeans projesinde özellikleri ve Bu yüzden problemi alıyorsunuz. Bu sorunu çözmeye yardımcı olacak ve benim için çalıştı.

+0

JDK 1.7'ye "bağlanan", bootstrap sınıf yolu olarak 1.6 belirtmek için nasıl yardımcı olabilir? –

0

Önyükleme sınıfı sınıf yolunu ayarlamam gerektiğini anlıyorum ama nasıl anladığımdan emin değilim. NetBeans 8.0'da

.2 adrese gidin: ekleyebilir hangi

Build > Compiling 

alt alanında "Ek Derleyici Seçenekleri" dir: Kategoriler penceresinde

Run > Set Project Configuration > Customise... 

, gidin

-bootclasspath /your/path/to/lower/java/version/lib/rt.jar