Düzeltme: Ana sınıf bulunamadı veya yüklenemedi



Sorunları Ortadan Kaldırmak Için Enstrümanımızı Deneyin

Hata ' Ana sınıf bulunamadı veya yüklenemedi ', Terminalde sınıf adını belirterek bir Java programını başlatmak için komut isteminde bir java komutu kullanıldığında oluşur. Bunun olmasının nedeni, çoğunlukla kullanıcının sınıfı bildirirken yaptığı programlama hatasından kaynaklanmaktadır.



Java komut satırında ana sınıf bulunamadı veya yüklenemedi

Ana sınıf - Java komut satırı bulunamadı veya yüklenemedi



Daha önce de belirtildiği gibi, bu hata çoğunlukla sistemle ilgili değildir ve kullanıcı aşağıda gösterildiği gibi çeşitli senaryolarda hata yapar. İlerlemeden önce, Java programlama dili ve nasıl çalıştığı konusunda temel bir bilgiye sahip olduğunuzu varsayıyoruz.



Java'da 'Ana sınıf bulunamadı veya yüklenemedi' hatasına ne sebep olur?

'Ana sınıf bulunamadı veya yüklenemedi' mesajı, Java motorunun yürütme için sınıfı getiren ilk adımının başarısız olduğu anlamına gelir. java komutu mümkün değildi bulmak doğru dizindeki sınıf.

Bazı durumlarda, eklemeniz gerekir doğru dosya yolu ve Java terminalini doğru konuma yönlendirin. Komutu komut satırı terminalinden çalıştırdığınız için, bilgisayar sınıfın nerede bulunacağını veya nerede olduğunu bilmez. Hedeflenen IDE'lerde, IDE geçerli çalışma dizinini gösteren bir işaretçiyi tuttuğu için sorun bu değildir.

'Java' sözdizimi nedir?

Çalıştırmaya çalışırken terminalin neden bize bir hata döndürdüğünü gidermeye başlamadan önce, önce komutun sözdizimine bakmamız gerekir. Doğru sözdizimini kullanmıyorsanız, bu hatayla kaçınılmaz olarak karşılaşacaksınız.



Komutun normal sözdizimi şuna benzer:

java [...] [...]

İşte bir komut satırı seçeneği, tam nitelikli bir Java sınıfı adıdır ve tüm paket derlendiğinde uygulamanıza iletilen bir komut satırı argümanıdır.

Geçerli bir komut örneği:

java -Xmx100m com.acme.example.ListAppuals kevin okları bart

Yukarıdaki komut, java komutunun aşağıdaki işlemleri yürütmesini sağlayacaktır:

  • Sınıfının derlenmiş bir sürümünü arayacaktır ' com.acme.example.ListAppuals '.
  • Arama yaptıktan sonra sınıfı yükleyecektir.
  • Daha sonra, sınıf yüklendiğinde, sınıf, geçerli bir imzaya, değiştiricilere ve dönüş türüne sahip bir 'ana' yöntem aranacaktır. Örnek bir ana sınıf şöyle bir şey olabilir:
public static void main (Dize [])
  • Yöntem, dizge olarak 'kevin', 'oklar' ve 'bart' bağımsız değişkenleriyle çağrılacaktır.

'Ana sınıf bulunamadı veya yüklenemedi' Nasıl Onarılır

1.Çözüm: Sınıf adı bağımsız değişkenini kontrol etme

Kullanıcıların yaptığı en yaygın hata, argüman olarak yanlış bir sınıf adı vermeleridir (veya doğru bir sınıf adı yanlış bir formdur). Komut satırında parametreler bildirdiğimiz için, sınıf adı argümanını yanlış bir biçimde iletmeniz çok olasıdır. Burada hata yapabileceğiniz tüm olası senaryoları listeleyeceğiz.

  • Bir ... Yazmak basit sınıf adı . Sınıfı 'com.acme.example' gibi bir pakette bildirirseniz, tam sınıf adı Java komutuna paket dahil.
java com.acme.example.ListAppuals

onun yerine

java ListAppuals
  • Malısın bir sınıf adı beyan et bir dosya adı veya yol adı bildirmek yerine. Bunun için bir yol adı / dosya adı bildirirseniz, Java sınıfı getirmez. Yanlış girişler şunları içerir:
java ListAppuals.class java com / acme / example / ListAppuals.class
  • Muhafaza dikkate alınmalıdır. Java komutları büyük / küçük harfe duyarlıdır ve tek bir harfle bile hata yaparsanız, ana sınıfı yükleyemezsiniz. Bir örnek yanlış hatalar şunlardır:
java com.acme.example.listappuals
  • Sen yapmamalı beyan etmek kaynak dosya adı . Daha önce bahsedildiği gibi, sınıfı yalnızca doğru tam sınıf adı biçiminde bildirmeniz gerekir. Bir hata örneği:
java ListAppuals.java
  • Bu hata, bir Yazım hatası veya sınıf adını tamamen yazmayı unut .

Sınıf adını bildirirken dikkatsiz bir hata yaptıysanız, bunu düzelttiğinizden emin olun ve ardından programı başlatmayı deneyin.

2.Çözüm: Sınıf yolunu kontrol etme

Sınıf adını doğru bir şekilde bildirdiyseniz ancak yine de hata gösteriliyorsa, java komutunun belirtilen sınıf adını yolda bulamama ihtimali vardır. Sınıf yolu, Java çalışma zamanının kaynak ve sınıf dosyalarını aradığı bir yoldur. Aşağıda gösterildiği gibi iki farklı komut kullanarak sınıf yolunu kolayca ayarlayabilirsiniz:

C:> sdkTool -sınıfyolu sınıfyolu1; sınıfyolu2 ... C:> CLASSPATH = sınıfyol1; sınıfyolu2 ...

Sınıf yolu hakkında daha fazla bilgi edinmek için aşağıdaki belgelere göz atmalısınız.

Java komut belgeleri

Sınıf yolunu ayarlama

3. Çözüm: Dizini kontrol etme

Bir dizini sınıf yolu olarak bildirdiğinizde, her zaman ad alanının köküne karşılık gelir. Örneğin '/ usr / local / acme / classes' sınıf yolunda ise, Java 'com.acme.example.Appuals' sınıfını arayacaktır. Aşağıdaki yol adına sahip bir sınıf arayacaktır:

/usr/local/acme/classes/com/acme/example/Appuals.class

Yani özünde, aşağıdaki adresi sınıf yoluna koyarsanız, Java sınıfı bulamayacaktır:

/ usr / local / acme / sınıflar / com / acme / example

Ayrıca kontrol etmelisiniz alt dizin ve FQN ile eşleşip eşleşmediğine bakın. Sınıflarınızın FQN'si 'com.acme.example.Appuals' ise, Java 'com / acme / example' dizininde 'Appuals.class' arayacaktır.

Size bir örnek vermek gerekirse, aşağıdaki senaryoyu varsayalım:

  • Çalıştırmak istediğiniz sınıf şudur: com.acme.example.Appuals
  • tam dosya yolu şudur: /usr/local/acme/classes/com/acme/example/Appuals.class
  • mevcut çalışma dizini şudur: / usr / local / acme / sınıflar / com / acme / example /

Ardından aşağıdaki senaryolar geçerli olacaktır:

# yanlış, FQN gerekli java Appuals # yanlış, java com.acme.example mevcut çalışma dizininde 'com / acme / example' klasörü yok. Uygulamalar # yanlış, yukarıdaki senaryoya benzer java -sınıf yolu. com.acme.example.Appuals # Tamam; göreli bir sınıf yolu ayarlanır java -sınıf yolu ../../ .. com.acme.example.Appuals # OK; mutlak bir sınıf yolu ayarlanır java -sınıfyolu / usr / local / acme / classes com.acme.example.Appuals

Not: Sınıf yolunun, uygulamalarınızın ihtiyaç duyduğu diğer tüm sınıfları (sistem dışı) da içermesi gerekir.

4.Çözüm: Sınıf paketini kontrol etme

Sizin durumunuzda yukarıdaki çözümlerin tümü doğruysa, kaynak kodunuzun doğru klasöre yerleştirildiğinden emin olmanız gerekir. Ayrıca, doğru şekilde beyan ettiniz paket . Kodunuzu bir IDE ile çalıştırırsanız, muhtemelen size sorunla ilgili bilgi verecektir. Ancak bizim durumumuzda, onu komut isteminde çalıştırdığımız için, hata fark edilmeyecek ve tartışılan sınıf hatasını alacaksınız.

4 dakika okundu