Није могуће пронаћи или учитати Јава главне класе? Ево како то поправити!

Није могуће пронаћи или учитати Јава главне класе? Ево како то поправити!

Ако непрестано добијате грешку главне класе која није пронађена у вашем Јава пројекту без очигледног разлога, не брините, нисте сами.





Као једна од најнепредвидљивијих и спонтаних грешака, захваљујући тенденцији ЈВМ -а (Јава Виртуал Мацхине) да се придржава задате стазе класа, проблем 'главна класа није пронађена' је нешто што прогања аматере и професионалце.





Али ово питање је мање застрашујуће него што се чини. Читајте даље да бисте сазнали како се једном заувек можете решити ове грешке.





Зашто главна класа није пронађена?

Пре него што покушамо да разумемо како и зашто ЈВМ није успео да пронађе главну класу, морамо да разумемо концепт Цласспатх на Јави.

Шта је Цласспатх?

Путања класе је путања датотеке коју Јава рунтиме окружење тражи за класе и друге датотеке ресурса. Може се поставити било помоћу -цласспатх опцију приликом извршавања програма или постављањем система ЦЛАССПАТХ променљива окружења.



Као што име сугерише, то је једноставно путања датотеке где се .класа датотеке се могу пронаћи у ЈДК пакету или директоријуму.

Када ЈВМ не може да лоцира главну класу, то је често зато што тражи одговарајућу .класа датотеке на погрешној путањи класе. Наравно, начин да се овај проблем отклони је ручно навођење путање класе помоћу пакета или навођењем стазе класе.





У овом тренутку, ако желите да освежите памћење Јава класа, погледајте наш водич за креирање класа у Јави .

како сачувати видео запис перископа

Коришћење пакета

Креирајмо класу која се зове Тест . Ставите га у пакет који се зове тестПацкаге . Пакети се користе у Јави за груписање сличних класа или за обезбеђивање јединственог простора имена за класе.





У овом једноставном примеру, коришћење пакета ће вам помоћи да визуализујете како функционише Јава -ов пут до класе. У вашој апликацији за управљање датотекама пакет је представљен као независна фасцикла.

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

Сада отворите нови терминал и уверите се да је ваш радни директоријум исти као и онај који садржи фасциклу пакета. Радни директоријум можете променити помоћу ЦД команда на било ком оперативном систему.

Саставити Тест.јава покретањем следеће команде:

package testPackage;
javac testPackage/Test.java

Ово ће сачувати компајлирану бинарну датотеку (.цласс датотеку) у тестПацкаге.

Да бисте покренули компајлирану класу, морате да унесете потпуно квалификовано име класе у командну линију. Потпуно квалификовано име Јава класе односи се на његово име са префиксом назива пакета. У овом случају ово би требало изгледати отприлике овако:

java testPackage.Test

Овај начин позивања датотека класа такође осигурава да можете позвати извршне датотеке из различитих пакета из истог радног директоријума. Све што треба да урадите је да промените потпуно квалификовано име класе.

У напреднијим имплементацијама препоручујемо вам да креирате засебне подмапе за своје класе и изворне датотеке ради бољег управљања датотекама унутар пакета.

Ручно навођење путање класе

Препоручени начин управљања вашим јава датотекама је креирање засебних директоријума за изворне датотеке и класе. Ако радите на пројекту, вероватно то већ радите.

Уобичајено, директоријум са изворним датотекама је означен као срц а онај са .цласс датотекама је означен као класе. Ово је такође начин да се обезбеди да се вероватноћа да ЈВМ не пронађе главну класу значајно смањи, захваљујући правилно структурираном директоријуму.

Ако користимо овај метод, овако ће изгледати структура директоријума пре компајлирања:

не могу приступити спољном чврстом диску
|---myFolder
| |---src
| |---testPackage
| |---Test.java
|
| |---classes

Свака алинеја на горњој илустрацији одговара једном нивоу хијерархије датотека који ваш пројекат треба да прати.

Да бисте ово компајлирали, уверите се да је ваш радни директориј миФолдер. Сада откуцајте следећу команду:

javac -d classes src/testPackage/Test.java

Тхе .класа извршну датотеку треба сачувати у миФолдер/цлассес/тестПацкаге . Сходно томе, структура директоријума датотека изгледа отприлике овако: | _+_ |

Да бисте покренули .класа филе, покрените Јава команду са потпуно квалификованим именом класе и наведите локалну путању класе. Свака путања је декларисана у односу на радни директоријум, који је у овом случају миФолдер.

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

Покретање ове команде требало би да вам да жељени излаз. Али, зашто је толико реорганизације потребно да би се решила једноставна грешка?

Важност организовања датотека у Јави

Разлог зашто се баца „Није могуће пронаћи или учитати главну класу“ је тај што ЈВМ није могао да пронађе где се налази .класа датотеке су се чувале.

Најлакши начин да решите ову грешку је да контролишете где се чувају .цласс датотеке и изричито кажете ЈВМ -у да тамо погледа. Ово је омогућено засебним организовањем изворних датотека и извршних датотека и контролисањем свега из радног директоријума.

Када почнете да додајете конструкте као што су наслеђе за ваш пројекат, сложеност система датотека ће се вишеструко повећати. У таквим пројектима или чак онима у којима је потребна употреба ЈАР датотека или прилагођених библиотека, једноставна пракса раздвајања и управљања датотекама може вам уштедети безброј сати решавања проблема и отклањања грешака.

Да бисте прочитали више о томе како цласспатх функционише у Јави и бројним стварима које можете да контролишете када је у питању покретање вашег кода, такође можете погледати Орацле -ове детаљна и једноставна референца .

Објави Објави Твеет Емаил 10 најбољих пројеката за почетнике за нове програмере

Желите да научите програмирање, али не знате одакле да почнете? Ови почетнички програми и водичи ће вас започети.

постаните тренер паса на мрежи бесплатно
Прочитајте следеће Повезане теме
  • Програмирање
  • Јава
О аутору Иасх Цхеллани(10 објављених чланака)

Иасх је амбициозан студент рачунарства који воли да гради ствари и пише о свим стварима технологије. У слободно време воли да игра сквош, чита примерак најновијег Муракамија и лови змајеве у Скириму.

Више од Иасх Цхелланија

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, критике, бесплатне е -књиге и ексклузивне понуде!

Кликните овде да бисте се претплатили