Betulkan: Tidak dapat mencari atau memuatkan kelas utama



Cuba Instrumen Kami Untuk Menghapuskan Masalah

Kesalahan ' Tidak dapat mencari atau memuatkan kelas utama 'Berlaku semasa menggunakan perintah java di command prompt untuk melancarkan program Java dengan menentukan nama kelas di terminal. Sebab mengapa ini berlaku disebabkan oleh kesalahan pengaturcaraan pengguna semasa mengisytiharkan kelas.



Tidak dapat mencari atau memuat kelas utama di baris perintah Java

Tidak dapat mencari atau memuat baris perintah utama - kelas perintah Java



Seperti yang disebutkan sebelumnya, kesalahan ini kebanyakannya tidak berkaitan dengan sistem dan pengguna melakukan kesalahan dalam beberapa senario seperti yang ditunjukkan di bawah. Sebelum melangkah ke hadapan, kami menganggap bahawa anda mempunyai pengetahuan asas mengenai bahasa pengaturcaraan Java dan cara kerjanya.



Apa yang menyebabkan ralat ‘Tidak dapat mencari atau memuat kelas utama’ di Java?

Mesej ‘Tidak dapat mencari atau memuat kelas utama’ bermaksud bahawa langkah pertama mesin Java mengambil kelas untuk pelaksanaan telah gagal. The arahan java tidak dapat cari kelas di direktori yang betul.

Dalam beberapa kes, anda mesti menambah jalan fail yang betul dan arahkan terminal Java ke lokasi yang betul. Oleh kerana anda menjalankan perintah dari terminal baris perintah, komputer tidak tahu di mana kelas itu hendak dijumpai atau di mana ia berada. Dalam IDE yang disasarkan, ini bukan masalahnya kerana IDE terus menunjukkan penunjuk ke arah direktori kerja semasa.

Apa itu sintaks ‘java’?

Sebelum kita memulakan penyelesaian masalah mengapa terminal mengembalikan kesalahan kepada kita ketika cuba melaksanakannya, pertama kita perlu melihat sintaks perintah. Sekiranya anda tidak menggunakan sintaks yang betul, anda pasti akan menghadapi ralat ini.



Sintaks biasa perintah adalah seperti ini:

java [...] [...]

Berikut adalah pilihan baris perintah, adalah nama kelas Java yang memenuhi syarat, dan merupakan argumen baris perintah yang diserahkan ke aplikasi anda ketika keseluruhan paket disusun.

Contoh arahan yang sah adalah:

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

Perintah di atas akan membuat perintah java melaksanakan operasi berikut:

  • Ia akan mencari versi kelas yang disusun ‘ com.acme.example.ListAppuals '.
  • Setelah mencari, ia akan memuatkan kelas.
  • Seterusnya, apabila kelas dimuat, kelas akan dicari kaedah 'utama' dengan tandatangan, pengubah, dan jenis pengembalian yang sah. Contoh kelas utama adalah seperti:
utama kekosongan statik awam (Rentetan [])
  • Kaedah ini akan dipanggil dengan argumen ‘kevin’, ‘panah’, dan ‘bart’ sebagai rentetan [].

Cara Memperbaiki ‘Tidak dapat mencari atau memuatkan kelas utama’

Penyelesaian 1: Memeriksa hujah nama kelas

Kesalahan yang paling biasa dilakukan oleh pengguna ialah mereka memberikan nama kelas yang salah sebagai argumen (atau nama kelas yang betul adalah bentuk yang salah). Oleh kerana kami menyatakan parameter pada baris perintah, kemungkinan besar anda akan menyampaikan argumen nama kelas dalam bentuk yang salah. Di sini kami akan menyenaraikan semua kemungkinan senario di mana anda boleh membuat kesilapan.

  • Penulisan a nama kelas sederhana . Sekiranya anda menyatakan kelas dalam pakej seperti 'com.acme.example', anda mesti menggunakan nama kelas penuh termasuk pakej dalam perintah Java.
java com.acme.example.ListAppuals

bukannya

Daftar Aplikasi Java
  • Kamu patut menyatakan nama kelas bukannya menyatakan nama fail atau nama jalan. Java tidak mengambil kelas jika anda menyatakan nama jalan / nama fail untuknya. Tidak betul penyertaan merangkumi yang berikut:
java ListAppuals.class java com / acme / example / ListAppuals.class
  • Selongsong harus diambil kira. Perintah Java peka huruf besar kecil dan jika anda membuat kesalahan walaupun satu huruf, anda tidak akan dapat memuat kelas utama. Contoh mengenai kesalahan yang tidak betul adalah:
java com.acme.example.listappuals
  • Anda tidak patut menyatakan kepada nama fail sumber . Seperti yang dinyatakan sebelumnya, anda hanya perlu menyatakan kelas dalam format nama kelas penuh yang betul. Contoh kesalahan adalah:
java ListAppuals.java
  • Kesalahan ini juga akan berlaku sekiranya anda membuat kesalahan menaip atau lupa menulis nama kelas sepenuhnya .

Sekiranya anda membuat kesilapan dalam menyatakan nama kelas, pastikan anda memperbaikinya dan kemudian cuba melancarkan program.

Penyelesaian 2: Memeriksa jalan kelas

Sekiranya anda telah menyatakan nama kelas dengan betul tetapi masih ditunjukkan ralatnya, kemungkinan perintah java tidak dapat menemukan nama kelas yang ditentukan di jalan tersebut. Classpath adalah jalan di mana Java runtime mencari sumber dan fail kelas. Anda boleh mengatur jalan kelas dengan mudah menggunakan dua arahan yang berbeza seperti yang ditunjukkan di bawah:

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

Untuk mendapatkan lebih banyak pandangan mengenai jalan kelas, anda harus melihat dokumen berikut.

Dokumentasi arahan Java

Menetapkan jalan kelas

Penyelesaian 3: Memeriksa direktori

Apabila anda menyatakan direktori sebagai classpath, direktori tersebut akan selalu sesuai dengan akar ruang nama. Contohnya jika '/ usr / local / acme / class' ada di classpath, maka Java akan mencari kelas 'com.acme.example.Appuals'. Ia akan mencari kelas dengan nama jalan berikut:

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

Jadi pada hakikatnya, jika anda meletakkan alamat berikut di path class, Java tidak akan dapat mencari kelas:

/ usr / tempatan / acme / kelas / com / acme / contoh

Anda juga harus memeriksa subdirektori dan lihat sama ada ia sepadan dengan FQN. Sekiranya kelas FQN anda adalah 'com.acme.example.Appuals', maka Java akan mencari 'Appuals.class' dalam direktori 'com / acme / example'.

Untuk memberi anda contoh, mari kita anggap senario berikut:

  • Kelas yang ingin anda jalankan ialah: com.acme.example.Appuals
  • The laluan fail penuh ialah: /usr/local/acme/classes/com/acme/example/Appuals.class
  • The direktori kerja semasa adalah: / usr / local / acme / kelas / com / acme / contoh /

Maka senario berikut akan berlaku:

# salah, FQN diperlukan java Appuals # salah, tidak ada folder `com / acme / example` di direktori kerja semasa java com.acme.example. Aplikasi # salah, serupa dengan senario di atas java -classpath. com.acme.example.Apohon # OK; classpath relatif ditetapkan java -classpath ../../ .. com.acme.example.Appuals # OK; classpath mutlak ditetapkan java -classpath / usr / local / acme / class com.acme.example.Appuals

Catatan: Pathpath perlu juga merangkumi semua kelas lain (bukan sistem) yang diperlukan oleh aplikasi anda.

Penyelesaian 4: Memeriksa pakej kelas

Sekiranya semua penyelesaian di atas berlaku dalam kes anda, anda perlu memastikan bahawa kod sumber anda diletakkan di folder yang betul. Anda juga telah menyatakan dengan betul pakej . Sekiranya anda menjalankan kod anda dengan IDE, ia mungkin akan memberitahu anda mengenai masalahnya. Walau bagaimanapun, dalam kes kami, kerana kami menjalankannya dalam command prompt, kesalahan akan disedari dan anda akan mendapat ralat kelas yang sedang dibincangkan.

4 minit membaca