Ошибка при запуске java could not find or load main class

Как избавится от ошибки «Could not find or load main class helloworld» Java?

Может кто знает как решить такую проблему..
При написании программы в eclipse все отлично компилируется и работает, но при попытки запустить программу через командную строку ошибка «Could not find or load main class helloworld»
Для примера написал «Hello World!»

package ru.sers.helloworld; public class HelloWorld < public static void main(String[] args) < System.out.println("Hello World!"); >>

В среде все работает, а вот при попытки запустить скомпелированный файл «HelloWorld.class» получается ошибка.
Может кто подскажет с чем это может быть связано?

Оценить 1 комментарий

1. Скорее всего вы работаетет под виндой, и там использовать для запуска не java , а javaw (это без связи с консолью)
2. Если без пакета javaw Helloworld(или с поиском пути, если в текущей директории javaw -cp . Helloworld и обратите внимание на точку)
3. у вас указан пакет, то запускать надо javaw с полным ru.sers.helloworld.Helloworld (Helloworld, если без пакета )
4. Самое главное в качесвте аргумента д.б. не имя файла(и оно с расширением): Helloworld.class, а имя класса: Helloworld (хоть даже оно без расширения и должно совпадать с именм файла)

Читайте также:  Простейшие элементы языка html

1 В блокноте пишу вышеуказанный код
2 Cохраняю как helloworld.java
3 В cmd выполняю javac helloworld.java (успешно компилируется, получаю helloworld.class)
4 В cmd выполняю java helloworld и тут получаю ошибку «ould not find or load main class helloworld»

Если у вас файлик класса не лежит в структуре папок package ru.sers.helloworld, то уберите эту строчку и все заработает

Или как показано в видео от Sanan Yuzb Sanan Yuzb скомпилируйте так
javac -d . HelloWorld.java
и далее уже запускайте

Без package все работает, да, но хочется разобраться в чем проблема при указании пакета
Файлик лежит в ru\sers\helloworld
пробовал делать две директории src и bin
файл HelloWorld.java компилировать javac -d bin src\ru\sers\helloworld\HelloWorld.java
Файл компилируется в bin\ru\sers\helloworld\HelloWorld.class, но запускаться не хочет(
пробовал java -classpath bin ru\sers\helloworld\HelloWorld но все равно таже ошибка.. я не знаю что с этим делать 🙁

SerS: Или как показано в видео от Sanan Yuzb Sanan Yuzb скомпилируйте так
javac -d . HelloWorld.java
и далее уже запускайте

javac -d . HelloWorld.java — почитайте хелп к данной команде. При компиляции создается иерархия папок и скомпилированный файл *.class помещается в указанную папку «helloworld».

Пробовал компилировать javac -d . HelloWord.java, папки создаются, да.. Вот только запускаться HelloWorld.class все равно не хочет.

я ваш пример копировал в текстовый редактор. сохранял в файлик HelloWorld.java
далее компилировал javac -d . HelloWord.java
и запускал java HelloWord из дирректории где лежит HelloWord.java

и у меня все отрабатывает. Вы так же делали?

Хорошая статья, где расписывается все. Но, вы уже ее и так нашли)

На всякий случай заново скопировал свой код в текстовый редактор
компилировал javac -d . HelloWorld.java
запускаю java HelloWorld из той же директории и ошибка. Если убрать пакет, то все нормально работает. jar файлы тоже запускаются.. а вот с *.class какая — то проблема

SerS: распишите подробно ваши действия с условием package ru.sers.helloworld; в коде. Мне кажется, вы все же что-то не то делаете

Талик: после создания файла в cmd ввожу javac -d . HelloWorld.java
создается ru\sers\helloworld\HelloWorld.class
далее пробовал разное
1 из директории с HelloWorld.java вводить java ru\sers\helloworld\HelloWorld
2 из директории с HelloWorld.java вводить java HelloWorld
3 из директории ru\sers\helloworld\ вводить java HelloWorld
результат один и тот же

SerS: 2 из директории с HelloWorld.java вводить java HelloWorld — должно было привести к рабочему итогу.

есть еще предположение. Напишите свою почту, я вам свой файлик кину, а вы мне свой. Иначе не могу понять

Талик: Ваш файл тоже не запустится.. Может попробовать удалить jdk и заново поставить? могут быть проблемы с переменными среды?

java version «1.8.0_71»
Java(TM) SE Runtime Environment (build 1.8.0_71-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.71-b15, mixed mode)

C:\Users\syche\OneDrive\Doc\Java\classes>»%JAVA_HOME%\bin\java.exe» HelloWorld
Error: Could not find or load main class HelloWorld

C:\Users\syche\OneDrive\Doc\Java\classes>java HelloWorld
Error: Could not find or load main class HelloWorld

SerS: Пришлите в архиве сам файл и сгенерированные при компиляции структуру папок. почта моя у вас есть

Sanan07

столкнулся с аналогичной ошибкой Error: Could not find or load main class sample.Main при экспериментах на Intellij Idea c Kotlin+JavaFX
лечится в т.ч. следующим неудобным «костылем»: Если появилась эта ошибка -удалите подкаталог production (со всем содержимыми результатами предыдущей сборки в ) в каталоге out.
После этого успешно собирается, но часто только 1 раз (потом опять..и опять удалять этот каталог).
Как кардинально лечить не нашел. Кто что предложит?

Если создавали главный класс с методом Main в пакете, то нужно в терминале перейти в каталог с основным проектом и набрать команду == например (java com.javacourse.se.lesson1.Main)

терминал: PS D:\Java_Projeckt_intellij2020_2_3\out\production\HelloWorld> java com.javacourse.se.lesson1.Main

3 дня мучался с этим вопросом! Перерыл всё. Считаю своим долгом поделиться.
Начал по книге Якова Файна изучать Java. С командной строки программа компилировалась. В Eclipse IDE не пошла. Лазил в настройки Patch и CLASSPATCH, удалял свои папки из Директории Workspace и снова возвращал и еще как то извращался.
В итоге по видео 5 летней давности https://youtu.be/mDyXljx8dMI (Основы Java. Урок 6: Первая программа на Java в Eclipse (Vladimir Vysokomornyi)) заменил библиотеку по умолчанию в Eclipse — JRE на JDK. И заработало. Правда простейшая программа думает сек 15.
В открытом проекте жму File/Properties/, затем в левой части выбрал Java Build Path, а в центральной части вкладку Libraries.
Выбрал папку JRE и нажал кнопку Remove. Выбрал надпись Modulepath, только после этого стала активной кнопка справа Add Library. Нажимаю. Выбираю JRE System Library, затем кнопка Next>, активирую надпись Alternative JRE и в выпадающем списке выбираю jdk-15.0.1.
Нажимаю Finish и Apply and Close.
Только для того, чтобы jdk-15.0.1 появилась в выпадающем списке, сначала нужно было подключить эту библиотеку, как в видеоуроке. У меня не подключилась, было написано The JRE name is already in use (уже используется).
Всем удачи и терпения

Войдите, чтобы написать ответ

Почему возникает ошибка Error creating bean with name ‘studentRepository’ defined in StudentRepository defined in @EnableJpaRepositories?

Источник

Error: Could not find or load main class

Java-университет

У меня была похожая проблема. Error: Could not find or load main class - 1После окончания Java Syntax начал решать задачи Java Core и появилась подобная ошибка времени исполнения. Вероятная причина: изменения шаблонов конфигурации Run/Debug при установке JavaFX. Исправление ошибки: 1. В верхней строке главного меню IDEA выбрать пункт «Run» 2. В выпадающем списке пунктов меню выбрать «Edit Configurations. » Error: Could not find or load main class - 13. В открывшемся диалоговом окне кликнуть на кликабельный текст «Edit configuration templates. » (данный текст расположен в левом нижнем углу диалогового окна) Error: Could not find or load main class - 24. В новом открывшемся диалоговом окне выбрать: 4.1. В столбце слева: «Application». 4.2. В поле, активном (выделенном) на скрине, выбрать подпапку того квеста, задачи которого запускаете на выполнение командой «Run» (то есть задачи текущего квеста, который сейчас проходите). 4.3. В данном диалоговом окне кликнуть «Apply» и затем «Ок». Error: Could not find or load main class - 35. После закрытия предыдущего диалогового окна кликнуть «Ок» в диалоговом окне «Run/Debug Configurations», которое стало активным. Error: Could not find or load main class - 4Итоги: 1. На скринах выше сохранил конфигурацию запуска/отладки по умолчанию для работы с файлами в подпапке проекта Java Core. То есть я могу с указанными настройками успешно запускать на выполнение ВСЕ файлы с подпапки «2.JavaCore». Error: Could not find or load main class - 52. При необходимости запустить на исполнение файлы с подпапок других квестов, скажем с «3.JavaMultiThreading», мне необходимо изменить подпапку, выбираемую по умолчанию в настройках «Edit configuration templates. » (смотри выше пункт 4 алгоритма «Исправление ошибки»). 3. Таким образом, чтобы запускать задачи на исполнение с подпапок другого квеста, нужно один раз изменить настройки «Edit configuration templates. » (смотри выше пункт 4 алгоритма «Исправление ошибки»). На практике, выполнять задачи с разных квестов не приходится: 3.1 Если проходишь квест «Java Syntax», то запускаешь на выполнение решенные задачи только с подпапки «1.JavaSyntax». 3.2 Если же проходишь следующий квест,- «Java Core»: запускаешь на выполнение решенные задачи только с подпапки «2.JavaCore». 4. Когда перешел на новый квест (к примеру с «Java Syntax» на «Java Core») один раз изменил настройки «Edit configuration templates. » (смотри выше пункт 4 алгоритма «Исправление ошибки»).

Источник

Java Guide: How to Fix “Could not find or load main class”

Java Guide: How to Fix “Could not find or load main class”

The Java “Could not find or load main class” error is thrown when the JVM fails to find or load the main class while executing a program. It usually occurs when executing a Java program from the command line.

What Causes Error: Could not find or load main class

The «Could not find or load main class» error occurs when the JVM fails to load the main class. This can happen due to various reasons, such as:

  • The class being declared in the incorrect package.
  • The file path of the class not matching the fully qualified name.
  • Incorrectly specified classpath of the application.
  • Missing dependencies from the classpath.
  • Incorrect directory path on the classpath.
  • A typo in the class name.

Error: Could not find or load main class Example

Here’s an example of the Java «Could not find or load main class» error thrown when an incorrect class name is specified during execution:

Here’s an example Java class MyClass.java :

public class MyClass < public static void main(String[] args) < System.out.println("Hello World"); > >

Now the above class is compiled using the command line:

The compiler generates an executable .class file for MyClass:

$ ls MyClass.class MyClass.java

Now if the java command is used to execute the .class file with an incorrect name, the «Could not find or load main class» error is thrown:

$ java Myclass Error: Could not find or load main class Myclass

The generated .class file has the exact same name as the Java class, which in this case is MyClass.class . Specifying the correct name will execute the program successfully:

How to Fix Error: Could not find or load main class

There are several ways the «Could not find or load main class» error can occur while executing Java programs. Most of the time, it occurs because of specifying an incorrect class name, class file extension, file path or classpath.

The following tips can be useful to resolve the «Could not find or load main class» error:

  • Using correct class name — The spelling and casing of the class name should be checked when executing the program.
  • Using the class name without the .class extension — The java command expects the class name for executing the program, without the .class extension. Therefore, the following syntax should be used to execute Java classes: java
  • Using the correct file path — The path to the .class file should be checked and corrected if the error occurs. Remember to use the fully qualified name of the class that is in a package if executing it from outside the directory structure of the package.
  • Correct classpath definition — The classpath should be checked and defined correctly if the error comes up. It can also be specified using the java -cp or -classpath command line arguments.

Track, Analyze and Manage Errors With Rollbar

Managing errors and exceptions in your code is challenging. It can make deploying production code an unnerving experience. Being able to track, analyze, and manage errors in real-time can help you to proceed with more confidence. Rollbar automates error monitoring and triaging, making fixing Java errors easier than ever. Sign Up Today!

Источник

Оцените статью