Java Class hatası

oblivion4ever

Kilopat
Katılım
29 Temmuz 2017
Mesajlar
189
Çözümler
3
Java dili ile yazılmış bir kodu Windows terminalinde derleyip çalıştırmak istediğimde şöyle bir hata alıyorum.
"Error: could not find or load main class"
Tabii ki terminalde derleme başarılı oluyor ancak çalıştırmak istediğimde bu hatayı veriyor. İnternetteki çözüm önerilerini denedim ama hiçbiri çare olmadı.
Fakat normal bir "hello world" kodu hazırlayıp derlediğimde çalıştırıyor. Karmaşık projelerde terminal iş yapmıyor.(IDE'de derleyip çalıştığından emin olduğum projeleri terminalde deniyorum.)
İlaveten terminal javac ve java komutlarını sorunsuzca algılayıp komut listesi sunabiliyor.
Son olarak terminalde dosya ismini olduğu gibi giriyorum. İmla hatası yok.
Yardımcı olursanız çok minnettar olurum.

Ek:
CLASSPATH, PATH ve JAVA_HOME ayarlarım şöyle:


1.png
2.png
3.png
 
Son düzenleyen: Moderatör:
Java dili ile yazılmış bir kodu Windows terminalinde derleyip çalıştırmak istediğimde şöyle bir hata alıyorum.
"Error: could not find or load main class"
Tabii ki terminalde derleme başarılı oluyor ancak çalıştırmak istediğimde bu hatayı veriyor. İnternetteki çözüm önerilerini denedim ama hiçbiri çare olmadı.
Fakat normal bir "hello world" kodu hazırlayıp derlediğimde çalıştırıyor. Karmaşık projelerde terminal iş yapmıyor.(IDE'de derleyip çalıştığından emin olduğum projeleri terminalde deniyorum.)
İlaveten terminal javac ve java komutlarını sorunsuzca algılayıp komut listesi sunabiliyor.
Son olarak terminalde dosya ismini olduğu gibi giriyorum. İmla hatası yok.
Yardımcı olursanız çok minnettar olurum.

Ek:
CLASSPATH, PATH ve JAVA_HOME ayarlarım şöyle:


Eki Görüntüle 346067Eki Görüntüle 346068Eki Görüntüle 346069
Yapmaya calistigin sey, "karmasik" projeni Runnable Jar haline getirip terminalden calistirmak mi?
IDE ile ya da build tool'lari ile runnable jar haline getirip sonra terminalden calistirsan sana yetmiyor mu?
Yoksa projenin tamamini javac ile terminalden build edip runnable haline mi getirmeye calisiyorsun? Oyleyse suradan yardim alabilirsin runnable fat jar icin: {{ service.title }}

Ama ben neden boyle bir seye ihtiyacin oldugunu cozemedim, IDE ile executable jar yapip terminalden calistirabilirsin.
 
Java dili ile yazılmış bir kodu Windows terminalinde derleyip çalıştırmak istediğimde şöyle bir hata alıyorum.
"Error: could not find or load main class"
Tabii ki terminalde derleme başarılı oluyor ancak çalıştırmak istediğimde bu hatayı veriyor. İnternetteki çözüm önerilerini denedim ama hiçbiri çare olmadı.
Fakat normal bir "hello world" kodu hazırlayıp derlediğimde çalıştırıyor. Karmaşık projelerde terminal iş yapmıyor.(IDE'de derleyip çalıştığından emin olduğum projeleri terminalde deniyorum.)
İlaveten terminal javac ve java komutlarını sorunsuzca algılayıp komut listesi sunabiliyor.
Son olarak terminalde dosya ismini olduğu gibi giriyorum. İmla hatası yok.
Yardımcı olursanız çok minnettar olurum.

Ek:
CLASSPATH, PATH ve JAVA_HOME ayarlarım şöyle:


Eki Görüntüle 346067Eki Görüntüle 346068Eki Görüntüle 346069

"Hello World" tarzında basit programları çalıştırabiliyorum fakat karışık programları çalıştıramıyorum demenden anladığım şu: basit programlarda genelde tek bir class olur(main), fakat karmaşık programlara geçtiğinde birden çok class'ın olmaya başlıyor. Karmaşık projeleri IDE'de derlerken IDE senin ana class'ını yani programın başlangıç class'ını bulabiliyor. Fakat sen terminalden çalıştırmak istediğinde main class'ını java komutuna elle vermen gerekiyor.

Bash:
java [ <option> ... ] <class-name> [<argument> ...]

Yukarıda şu linkte verilen örnek var bir incele istersen. What does "Could not find or load main class" mean?

Sorun çözülmezse tekrar yazman yeterli.
 
Yapmaya calistigin sey, "karmasik" projeni Runnable Jar haline getirip terminalden calistirmak mi?
IDE ile ya da build tool'lari ile runnable jar haline getirip sonra terminalden calistirsan sana yetmiyor mu?
Yoksa projenin tamamini javac ile terminalden build edip runnable haline mi getirmeye calisiyorsun? Oyleyse suradan yardim alabilirsin runnable fat jar icin: {{ service.title }}

Ama ben neden boyle bir seye ihtiyacin oldugunu cozemedim, IDE ile executable jar yapip terminalden calistirabilirsin.

-JAR uzantısı haline getirmeyi yeni öğrendim, sağ ol. Artık terminale gerek kalmadı gibi fakat yine de bu terminal işi kafamı kurcalıyor. Evet amacım terminalden derleyip çalıştırmaktı fakat bu sefer terminalde uğraşırken "hello word" çıktısını bile alamamaya başladım. Verdiğin linkteki anlatımlar olayı oldukça zorlaştırmış. Büyük bir proje değil o yüzden apache lüzumlu sayılmaz. Hem apache kullanımını da pek anlayamadım.

"Hello World" tarzında basit programları çalıştırabiliyorum fakat karışık programları çalıştıramıyorum demenden anladığım şu: basit programlarda genelde tek bir class olur(main), fakat karmaşık programlara geçtiğinde birden çok class'ın olmaya başlıyor. Karmaşık projeleri IDE'de derlerken IDE senin ana class'ını yani programın başlangıç class'ını bulabiliyor. Fakat sen terminalden çalıştırmak istediğinde main class'ını java komutuna elle vermen gerekiyor.

Bash:
java [ <option> ... ] <class-name> [<argument> ...]

Yukarıda şu linkte verilen örnek var bir incele istersen. What does "Could not find or load main class" mean?

Sorun çözülmezse tekrar yazman yeterli.

Açıkçası birden fazla class yok projemde. Fakat yukarıdaki linki de denedim olmadı. Acaba yanlış mı anladım şu şekilde değil mi? Birkaç farklı şekilde de denedim ama. Tabii ki derledikten sonra.
terminal1.png

Problemi çözdüm. Şu şekilde yapınca oldu.

Terminalden önce derlemek ve sonra çalıştırmak için kodun kaydedildiği .../src dizininde komut istemi açılır.

javac packageismi/classismi.java
java packageismi/classismi


Package ismi tamamen küçük şekilde yazılacak.
Class ismi yazılırken büyük küçük harfe duyarlı olduğunu da unutmamak lazım.
 
Son düzenleme:
Uyarı! Bu konu 7 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Yeni konular

Geri
Yukarı