Не можах да намеря или заредя Java от основния клас? Ето как да го поправите!

Не можах да намеря или заредя Java от основния клас? Ето как да го поправите!

Ако продължавате да получавате грешка в основния клас не е намерена във вашия Java проект без видима причина, не се притеснявайте, не сте сами.





Като една от най -непредвидимите и спонтанни грешки, благодарение на тенденцията на JVM (Java Virtual Machine) да се придържа към стандартния път по подразбиране, проблемът „основният клас не е намерен“ е нещо, което преследва както любителите, така и професионалистите.





Но този въпрос всъщност е по -малко плашещ, отколкото изглежда. Прочетете, за да разберете как можете да се отървете от тази грешка веднъж завинаги.





Защо основният клас не беше намерен?

Преди да се опитаме да разберем как и защо JVM не успя да намери основния клас, трябва да разберем концепцията за Classpath в Java.

Какво е Classpath?

Classpath е пътят на файла, който средата за изпълнение на Java търси за класове и други файлове с ресурси. Може да се зададе с помощта на -класов път опция при изпълнение на програма или чрез настройка на системата CLASSPATH променлива на средата.



Както подсказва името, това е просто път към файл, където .клас файловете могат да бъдат намерени в JDK пакет или директория.

Когато JVM не може да намери основния клас, това често се случва, защото търси съответния .клас файлове в грешен път на класа. Разбира се, начинът за отстраняване на този проблем е да посочите ръчно пътя на класа, като използвате пакети или посочите пътя на класа.





В този момент, ако искате да опресните паметта си за Java класове, разгледайте нашето ръководство за създаване на класове в Java .

защо връзката ми е толкова бавна

Използване на пакети

Нека създадем клас, наречен Тест . Поставете го в пакет, наречен testPackage . Пакетите се използват в Java, за да групират подобни класове заедно или да предоставят уникално пространство от имена за класове.





В този прост пример използването на пакет ще ви помогне да визуализирате как работи класният път на Java. Във вашето приложение за управление на файлове пакетът е представен като независима папка.

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

Сега отворете нов терминал и се уверете, че работната ви директория е същата като тази, която съдържа папката с пакети. Можете да промените работната директория с помощта на CD команда на всяка операционна система.

Компилирайте Test.java като изпълните следната команда:

package testPackage;
javac testPackage/Test.java

Това ще запише компилирания двоичен файл (.class файл) в testPackage.

За да стартирате компилирания клас, трябва да въведете напълно квалифицираното име на класа в командния ред. Напълно квалифицираното име на Java клас се отнася до името му с префикс с името на пакета. В този случай това трябва да изглежда така:

java testPackage.Test

Този начин за извикване на файлове на клас също гарантира, че можете да извиквате изпълними файлове от различни пакети от една и съща работна директория. Всичко, което трябва да направите, е да промените напълно квалифицираното име на клас.

В по -напредналите реализации препоръчваме да създадете отделни подпапки за вашите класове и изходни файлове, за да управлявате по -добре файловете в пакета.

Ръчно задаване на Classpath

Препоръчителният начин за управление на вашите Java файлове е да създадете отделни директории за изходни файлове и класове. Ако работите по проект, вероятно вече го правите.

Обикновено директория с изходни файлове е означена като src а този с .class файлове е означен като класове. Това също е начин да се гарантира, че вероятността JVM да не намери основния клас се намалява значително, благодарение на правилно структурираната директория.

Ако използваме този метод, структурата на директориите ще изглежда така преди компилирането:

защо не мога да маркирам някого в instagram
|---myFolder
| |---src
| |---testPackage
| |---Test.java
|
| |---classes

Всяко тире в горната илюстрация съответства на едно ниво от файловата йерархия, което вашият проект трябва да следва.

За да компилирате това, уверете се, че вашата работна директория е myFolder. Сега въведете следната команда:

javac -d classes src/testPackage/Test.java

The .клас изпълнимият файл трябва да бъде записан в myFolder/classes/testPackage . Съответно структурата на файловата директория изглежда така: | _+_ |

За да стартирате .клас file, изпълнете командата Java с напълно квалифицирано име на клас и посочете локалния път на класа. Всеки път е деклариран спрямо работната директория, която в този случай е myFolder.

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

Изпълнението на тази команда трябва да ви даде желания изход. Но защо е необходима толкова реорганизация, за да се реши проста грешка?

Значението на организирането на файлове в Java

Причината, поради която „Не може да се намери или зареди основния клас“ е хвърлена, защото JVM не успя да намери къде се намира .клас файловете се съхраняват.

Най -лесният начин да разрешите тази грешка е да контролирате къде се съхраняват .class файловете и изрично да кажете на JVM да потърси там. Това става възможно, като организирате отделно вашите изходни файлове и изпълними файлове и контролирате всичко от работна директория.

Когато започнете да добавяте конструкции като наследство за вашия проект сложността на файловата система ще се увеличи многократно. В такива проекти или дори в тези, където се изисква използването на JAR файлове или персонализирани библиотеки, простата практика за разделяне и управление на файлове може да ви спести безброй часове за отстраняване на неизправности и отстраняване на грешки.

За да прочетете повече за това как classpath работи в Java и многобройните неща, които можете да контролирате, когато става въпрос за изпълнение на вашия код, можете също да разгледате подробна и лесна за употреба справка .

Дял Дял Туит електронна поща 10 -те най -добри начинаещи проекта за нови програмисти

Искате да научите програмиране, но не знаете откъде да започнете? Тези проекти и уроци за програмиране за начинаещи ще ви започнат.

как автоматично да препращате имейли от конкретен подател в gmail
Прочетете Напред Свързани теми
  • Програмиране
  • Java
За автора Яш Челани(10 статии са публикувани)

Яш е амбициозен студент по компютърни науки, който обича да изгражда неща и да пише за всички технологии. В свободното си време обича да играе скуош, да чете копие от най -новите Мураками и да ловува дракони в Скайрим.

Още от Yash Chellani

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и изключителни оферти!

Щракнете тук, за да се абонирате