Solusi: Tidak dapat menemukan atau memuat kelas utama

Kesalahan ' Tidak dapat menemukan atau memuat kelas utama ' terjadi ketika menggunakan perintah java di prompt perintah untuk meluncurkan program Java dengan menentukan nama kelas di terminal. Alasan mengapa hal ini terjadi sebagian besar karena kesalahan pemrograman pengguna saat mendeklarasikan kelas.

Tidak dapat menemukan atau memuat baris perintah utama-Java

Seperti disebutkan sebelumnya, kesalahan ini sebagian besar tidak berhubungan dengan sistem dan pengguna membuat kesalahan dalam beberapa skenario seperti yang ditunjukkan di bawah ini. Sebelum bergerak maju, kami berasumsi bahwa Anda memiliki pengetahuan dasar tentang bahasa pemrograman Java dan cara kerjanya.

Apa yang menyebabkan kesalahan 'Tidak dapat menemukan atau memuat kelas utama' di Jawa?

Pesan 'Tidak dapat menemukan atau memuat kelas utama' berarti bahwa langkah pertama dari mesin Java mengambil kelas untuk eksekusi telah gagal. Perintah java tidak dapat menemukan kelas di direktori yang benar.

Dalam beberapa kasus, Anda harus menambahkan jalur file yang benar dan mengarahkan terminal Java ke lokasi yang benar. Karena Anda mengeksekusi perintah dari terminal baris perintah, komputer tidak tahu di mana kelas itu dapat ditemukan atau di mana ia berada. Dalam IDE yang ditargetkan, ini bukan masalah karena IDE menyimpan pointer yang menunjuk ke direktori kerja saat ini.

Apa itu sintaks 'java'?

Sebelum kita mulai memecahkan masalah mengapa terminal mengembalikan kita kesalahan ketika mencoba mengeksekusi, pertama-tama kita perlu melihat sintaks dari perintah. Jika Anda tidak menggunakan sintaks yang benar, Anda akan menghadapi kesalahan ini tak terhindarkan.

Sintaks normal perintahnya adalah seperti ini:

 java [...] [...] 

Berikut ini adalah opsi baris perintah, adalah nama kelas Java yang sepenuhnya memenuhi syarat, dan merupakan argumen baris perintah yang diteruskan ke aplikasi Anda ketika seluruh paket dikompilasi.

Contoh dari perintah yang valid adalah:

 java -Xmx100m com.acme.example.ListAppuals kevin panah bart 

Perintah di atas akan membuat perintah java menjalankan operasi berikut:

  • Ini akan mencari versi kompilasi dari kelas ' com.acme.example.ListAppuals '.
  • Setelah mencari, itu akan memuat kelas.
  • Selanjutnya, ketika kelas dimuat, kelas akan mencari metode 'utama' dengan tanda tangan, pengubah, dan jenis kembali yang valid. Contoh kelas utama akan menjadi seperti:
 public static static utama (String []) 
  • Metode ini akan dipanggil dengan argumen 'kevin', 'panah', dan 'bart' sebagai string [].

Cara Memperbaiki 'Tidak dapat menemukan atau memuat kelas utama'

Solusi 1: Memeriksa argumen nama kelas

Kesalahan yang paling umum dilakukan oleh pengguna adalah mereka memberikan nama kelas yang salah sebagai argumen (atau nama kelas yang benar adalah bentuk yang salah). Karena kita mendeklarasikan parameter pada baris perintah, sangat mungkin Anda akan melewatkan argumen nama kelas dalam bentuk yang salah. Di sini kami akan membuat daftar semua skenario yang memungkinkan di mana Anda dapat membuat kesalahan.

  • Menulis nama kelas yang sederhana . Jika Anda mendeklarasikan kelas dalam sebuah paket seperti 'com.acme.example', Anda harus menggunakan nama kelas lengkap termasuk paket dalam perintah Java.
 java com.acme.example.ListAppuals 

dari pada

 Daftar java 
  • Anda harus mendeklarasikan nama kelas alih-alih mendeklarasikan nama file atau nama path. Java tidak mengambil kelas jika Anda mendeklarasikan nama path / nama file untuk itu. Entri yang salah meliputi:
 java ListAppuals.class java com / acme / example / ListAppuals.class 
  • Casing harus dipertimbangkan. Perintah Java peka huruf besar-kecil dan jika Anda membuat kesalahan bahkan dengan satu huruf, Anda tidak akan dapat memuat kelas utama. Contoh kesalahan yang salah adalah:
 java com.acme.example.listappuals 
  • Anda tidak boleh mendeklarasikan nama file sumber . Seperti disebutkan sebelumnya, Anda hanya perlu mendeklarasikan kelas dalam format nama kelas lengkap yang benar. Contoh kesalahan adalah:
 java ListAppuals.java 
  • Kesalahan ini juga akan terjadi jika Anda membuat kesalahan pengetikan atau lupa untuk menulis nama kelas seluruhnya .

Jika Anda telah membuat kesalahan ceroboh dalam mendeklarasikan classname, pastikan Anda memperbaikinya dan kemudian coba meluncurkan program.

Solusi 2: Memeriksa classpath

Jika Anda telah mendeklarasikan classname dengan benar tetapi masih menunjukkan kesalahan, kemungkinannya adalah perintah java tidak dapat menemukan classname yang ditentukan di path. Classpath adalah jalur di mana Java runtime mencari sumber daya dan file kelas. Anda dapat dengan mudah mengatur classpath menggunakan dua perintah berbeda seperti yang ditunjukkan di bawah ini:

 C:> sdkTool -classpath classpath1; classpath2 ... C:> set CLASSPATH = classpath1; classpath2 ... 

Untuk mendapatkan wawasan lebih lanjut tentang classpath, Anda harus memeriksa dokumen-dokumen berikut.

Dokumentasi perintah Java

Pengaturan classpath

Solusi 3: Memeriksa direktori

Ketika Anda mendeklarasikan direktori sebagai classpath, itu akan selalu sesuai dengan root namespace. Sebagai contoh jika "/ usr / local / acme / classes" ada di classpath, maka Java akan mencari kelas "com.acme.example.Appuals". Ini akan mencari kelas dengan pathname berikut:

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

Jadi intinya, jika Anda memasukkan alamat berikut di classpath, Java tidak akan dapat menemukan kelas:

 / usr / local / acme / kelas / com / acme / contoh 

Anda juga harus memeriksa subdirektori Anda dan melihat apakah itu cocok dengan FQN. Jika kelas Anda FQN adalah "com.acme.example.Appuals", maka Java akan mencari "Appuals.class" di direktori "com / acme / example".

Untuk memberi Anda contoh, anggaplah skenario berikut:

  • Kelas yang ingin Anda jalankan adalah: com.acme.example.Appuals
  • Path file lengkap adalah: /usr/local/acme/classes/com/acme/example/Appuals.class
  • Direktori kerja saat ini adalah: / usr / local / acme / classes / com / acme / example /

Maka skenario berikut akan berlaku:

 # salah, FQN diperlukan java Appuals # salah, tidak ada folder `com / acme / example` di direktori kerja saat ini java com.acme.example.Appuals # salah, mirip dengan skenario java -classpath di atas. com.acme.example.Appuals # OK; classpath relatif diatur java -classpath ../../ .. com.acme.example.Appuals # OK; classpath absolut disetel java -classpath / usr / local / acme / classes com.acme.example.Appuals 

Catatan: Classpath juga perlu menyertakan semua kelas lain (non-sistem) yang dibutuhkan aplikasi Anda.

Solusi 4: Memeriksa paket kelas

Jika semua solusi di atas berlaku dalam kasus Anda, Anda perlu memastikan bahwa kode sumber Anda ditempatkan di folder yang benar. Anda juga telah mendeklarasikan paket dengan benar. Jika Anda menjalankan kode Anda dengan IDE, itu mungkin akan memberi tahu Anda tentang masalah ini. Namun, dalam kasus kami, karena kami menjalankannya di command prompt, kesalahannya akan luput dari perhatian dan Anda akan mendapatkan kesalahan kelas yang sedang dibahas.

Artikel Menarik