Nepavyko rasti arba įkelti pagrindinės klasės „Java“? Štai kaip tai išspręsti!

Nepavyko rasti arba įkelti pagrindinės klasės „Java“? Štai kaip tai išspręsti!

Jei „Java“ projekte be aiškios priežasties vis tiek gaunate pagrindinės klasės klaidą, nesijaudinkite, nesate vieni.





„JVM“ („Java Virtual Machine“) tendencija laikytis numatytojo klasių kelio yra viena iš labiausiai nenumatytų ir spontaniškų klaidų, todėl „pagrindinės klasės nerasta“ problema yra tokia, kuri persekioja tiek mėgėjus, tiek profesionalus.





Tačiau ši problema iš tikrųjų yra mažiau bauginanti, nei atrodo. Skaitykite toliau, kad sužinotumėte, kaip galite kartą ir visiems laikams atsikratyti šios klaidos.





Kodėl pagrindinė klasė nebuvo rasta?

Prieš bandydami suprasti, kaip ir kodėl JVM nepavyko rasti pagrindinės klasės, turime suprasti sąvoką Klasės takas „Java“.

Kas yra „Classpath“?

Klasės kelias yra failo kelias, kurio „Java“ vykdymo aplinkos aplinka ieško klasių ir kitų išteklių failų. Jį galima nustatyti naudojant arba -klasės takas parinktis vykdant programą arba nustatant sistemą CLASSPATH aplinkos kintamasis.



Kaip rodo pavadinimas, tai tiesiog failo kelias, kuriame .klasė failus galima rasti JDK pakete arba kataloge.

Kai JVM negali rasti pagrindinės klasės, dažnai tai atsitinka todėl, kad ji ieško atitinkamos .klasė failai netinkamame klasės kelyje. Žinoma, šią problemą galima išspręsti rankiniu būdu nurodant klasės kelią naudojant paketus arba nurodant klasės kelią.





Šiuo metu, jei norite atnaujinti „Java“ klasių atmintį, peržiūrėkite mūsų vadovą kursų kūrimas „Java“ .

dėl ko jūsų „snapchat“ balas kyla

Paketų naudojimas

Sukurkime klasę pavadinimu Bandymas . Įdėkite jį į paketą, vadinamą testPackage . Paketai naudojami „Java“, siekiant sugrupuoti panašias klases arba suteikti unikalią klasių vardų sritį.





Šiame paprastame pavyzdyje paketo naudojimas padės įsivaizduoti, kaip veikia „Java“ klasės kelias. Jūsų failų tvarkyklės programoje paketas pateikiamas kaip nepriklausomas aplankas.

package testPackage;
public class Test {
public static void main(String args[]) {
System.out.println('File successfully found!');
}
}

Dabar atidarykite naują terminalą ir įsitikinkite, kad jūsų darbo katalogas yra tas pats, kuriame yra paketo aplankas. Darbo katalogą galite pakeisti naudodami CD komandą bet kurioje operacinėje sistemoje.

Sudaryti Test.java vykdydami šią komandą:

package testPackage;
javac testPackage/Test.java

Taip bus išsaugotas sukompiliuotas dvejetainis failas (.class failas) į testPackage.

Norėdami paleisti surinktą klasę, komandų eilutėje turite įvesti visiškai kvalifikuotą klasės pavadinimą. „Java“ klasės visiškai kvalifikuotas pavadinimas reiškia jos pavadinimą prieš paketo pavadinimą. Šiuo atveju tai turėtų atrodyti maždaug taip:

java testPackage.Test

Šis klasės failų iškvietimo būdas taip pat užtikrina, kad iš to paties darbo katalogo galėsite skambinti vykdomosioms programoms iš skirtingų paketų. Viskas, ką jums reikia padaryti, tai pakeisti visiškai kvalifikuotos klasės pavadinimą.

Patobulintose diegimo versijose rekomenduojame sukurti atskirus poaplankius savo klasėms ir šaltinio failams, kad geriau tvarkytumėte paketo failus.

Rankinis „Classpath“ nurodymas

Rekomenduojamas „Java“ failų tvarkymo būdas yra sukurti atskirus šaltinio failų ir klasių katalogus. Jei dirbate prie projekto, tikėtina, kad tai jau darote.

Paprastai katalogas su šaltinio failais yra pažymėtas kaip src o tas, kuriame yra .class failai, pažymėtas kaip klasės. Tai taip pat yra būdas užtikrinti, kad dėl tinkamai struktūrizuoto katalogo tikimybė, kad JVM neras pagrindinės klasės, būtų gerokai sumažinta.

Jei naudosime šį metodą, prieš kompiliavimą katalogų struktūra atrodys taip:

kaip pasiekti „icloud“ nuotraukas „iPhone“
|---myFolder
| |---src
| |---testPackage
| |---Test.java
|
| |---classes

Kiekviena aukščiau pateiktos iliustracijos įtrauka atitinka vieną failų hierarchijos lygį, kurio turėtų laikytis jūsų projektas.

Norėdami tai sudaryti, įsitikinkite, kad jūsų darbo katalogas yra „myFolder“. Dabar įveskite šią komandą:

javac -d classes src/testPackage/Test.java

The .klasė vykdomąjį failą reikia išsaugoti myFolder/class/testPackage . Atitinkamai failų katalogų struktūra atrodo maždaug taip: | _+_ |

Norėdami paleisti .klasė failą, paleiskite „Java“ komandą su visiškai kvalifikuotu klasės pavadinimu ir nurodykite vietinį klasės kelią. Kiekvienas kelias deklaruojamas darbo katalogo atžvilgiu, kuris šiuo atveju yra „myFolder“.

|---myFolder
| |---src
| |---testPackage
| |---Test.java
|
| |---classes
| |---testPackage
| |---Test.class

Vykdydami šią komandą turėtumėte gauti norimą rezultatą. Bet kodėl tiek daug pertvarkymų reikia norint išspręsti paprastą klaidą?

Failų tvarkymo „Java“ svarba

Priežastis „Nepavyko rasti arba įkelti pagrindinės klasės“ yra ta, kad JVM nepavyko rasti jūsų .klasė failai buvo saugomi.

Lengviausias būdas išspręsti šią klaidą yra valdyti, kur yra saugomi .class failai, ir aiškiai liepti JVM ten ieškoti. Tai galima padaryti atskirai organizuojant šaltinio failus ir vykdomuosius failus ir valdant viską iš darbo katalogo.

Kai pradedate pridėti konstrukcijų, tokių kaip paveldėjimas Jūsų projektui failų sistemos sudėtingumas padidės. Tokiuose projektuose ar net tuose, kur reikia naudoti JAR failus ar pasirinktines bibliotekas, paprasta failų atskyrimo ir tvarkymo praktika gali sutaupyti daugybę valandų trikčių šalinimo ir derinimo.

Norėdami sužinoti daugiau apie tai, kaip „classpath“ veikia „Java“, ir daugybę dalykų, kuriuos galite valdyti vykdydami kodą, taip pat galite pažvelgti į „Oracle“ išsami ir patogi nuoroda .

Dalintis Dalintis „Tweet“ Paštu 10 geriausių pradedančiųjų projektų naujiems programuotojams

Norite išmokti programuoti, bet nežinote nuo ko pradėti? Šie pradedančiųjų programavimo projektai ir vadovėliai pradės jus.

kaip padaryti programėlę naudojant obuolių parduotuvę
Skaityti toliau Susijusios temos
  • Programavimas
  • „Java“
Apie autorių Yash Chellani(Paskelbta 10 straipsnių)

Yash yra trokštantis informatikos studentas, mėgstantis kurti dalykus ir rašyti apie visas technologijas. Laisvalaikiu jis mėgsta žaisti skvošą, skaityti naujausio „Murakami“ egzempliorių ir medžioti drakonus „Skyrim“.

Daugiau iš Yash Chellani

Prenumeruokite mūsų naujienlaiškį

Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!

Norėdami užsiprenumeruoti, spustelėkite čia