Fix: Tidak dapat menemukan atau memuat kelas utama



Coba Instrumen Kami Untuk Menghilangkan Masalah

Kesalahan ' Tidak dapat menemukan atau memuat kelas utama 'Terjadi saat 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 kelas utama di baris perintah Java

Tidak dapat menemukan atau memuat kelas utama- baris perintah Java



Seperti disebutkan sebelumnya, kesalahan ini sebagian besar tidak terkait dengan sistem dan pengguna membuat kesalahan dalam beberapa skenario seperti yang ditunjukkan di bawah ini. Sebelum melangkah 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 Java?

Pesan ‘Tidak dapat menemukan atau memuat kelas utama’ berarti langkah pertama mesin Java yang mengambil kelas untuk dieksekusi telah gagal. Itu perintah java tidak bisa menemukan kelas di direktori yang benar.

Dalam beberapa kasus, Anda harus menambahkan jalur file yang benar dan arahkan terminal Java ke lokasi yang benar. Karena Anda menjalankan perintah dari terminal baris perintah, komputer tidak tahu di mana kelas itu akan ditemukan atau di mana lokasinya. Dalam IDE yang ditargetkan, ini bukan masalahnya karena IDE terus mengarahkan penunjuk ke direktori kerja saat ini.

Apa itu sintaks 'java'?

Sebelum kita mulai memecahkan masalah mengapa terminal mengembalikan kita kesalahan saat mencoba mengeksekusi, pertama kita perlu melihat sintaks perintah. Jika Anda tidak menggunakan sintaks yang benar, Anda pasti akan menghadapi kesalahan ini.



Sintaks normal perintah adalah seperti ini:

java [...] [...]

Berikut adalah opsi baris perintah, adalah nama kelas Java yang 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 arrows bart

Perintah di atas akan membuat perintah java menjalankan operasi berikut:

  • Ini akan mencari versi terkompilasi dari kelas ' com.acme.example.ListAppuals '.
  • Setelah dicari, kelas akan dimuat.
  • Selanjutnya, ketika kelas dimuat, kelas akan mencari metode 'utama' dengan tanda tangan yang valid, pengubah, dan jenis kembalian. Contoh kelas utama akan menjadi seperti ini:
public static void main (String [])
  • Metode tersebut 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 paling umum yang dilakukan pengguna adalah mereka memberikan nama kelas yang salah sebagai argumen (atau nama kelas yang benar adalah bentuk yang salah). Karena kami mendeklarasikan parameter pada baris perintah, kemungkinan besar Anda akan meneruskan argumen nama kelas dalam bentuk yang salah. Di sini kami akan membuat daftar semua kemungkinan skenario di mana Anda bisa membuat kesalahan.

  • Menulis a nama kelas 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

java ListAppuals
  • Kamu harus mendeklarasikan nama kelas alih-alih mendeklarasikan nama file atau nama jalur. Java tidak mengambil kelas jika Anda mendeklarasikan nama jalur / nama file untuknya. Salah entri termasuk yang berikut ini:
java ListAppuals.class java com / acme / example / ListAppuals.class
  • Selubung harus dipertimbangkan. Perintah Java peka huruf besar dan kecil dan jika Anda membuat kesalahan bahkan satu huruf, Anda tidak akan dapat memuat kelas utama. Contoh dari kesalahan yang salah adalah:
java com.acme.example.listappuals
  • Kamu jangan menyatakan kepada nama file sumber . Seperti yang 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 file kesalahan pengetikan atau lupa untuk menuliskan nama kelas seluruhnya .

Jika Anda telah membuat kesalahan sembarangan dalam mendeklarasikan nama kelas, pastikan Anda memperbaikinya dan kemudian mencoba meluncurkan program.

Solusi 2: Memeriksa classpath

Jika Anda telah mendeklarasikan nama kelas dengan benar tetapi masih menunjukkan kesalahan, kemungkinan besar perintah java tidak dapat menemukan nama kelas yang ditentukan di jalur. Classpath adalah jalur tempat runtime Java mencari resource 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 lebih banyak wawasan tentang classpath, Anda harus memeriksa dokumen berikut.

Dokumentasi perintah Java

Menyetel jalur kelas

Solusi 3: Memeriksa direktori

Saat Anda mendeklarasikan direktori sebagai classpath, itu akan selalu sesuai dengan root namespace. Misalnya jika '/ usr / local / acme / class' ada di jalur kelas, maka Java akan mencari kelas 'com.acme.example.Appuals'. Ini akan mencari kelas dengan nama jalur berikut:

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

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

/ usr / local / acme / class / com / acme / example

Anda juga harus memeriksa file subdirektori dan lihat 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'.

Sebagai contoh, anggaplah skenario berikut:

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

Kemudian 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 # wrong, mirip dengan skenario java -classpath di atas. com.acme.example.Appuals # OK; classpath relatif disetel java -classpath ../../ .. com.acme.example.Appuals # OK; classpath mutlak diatur java -classpath / usr / local / acme / class com.acme.example.Appuals

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

Solusi 4: Memeriksa paket kelas

Jika semua solusi di atas benar dalam kasus Anda, Anda perlu memastikan bahwa kode sumber Anda ditempatkan di folder yang benar. Selain itu, Anda telah mendeklarasikan file paket . Jika Anda menjalankan kode Anda dengan IDE, itu mungkin akan memberi tahu Anda tentang masalah tersebut. Namun, dalam kasus kami, karena kami menjalankannya di command prompt, kesalahan tidak akan diketahui dan Anda akan mendapatkan kesalahan kelas yang sedang dibahas.

4 menit baca