Не удалось найти или загрузить основной класс

У меня есть Windows 7, установленный jdk1.7.0 и поддерживающий jre7.
Моя проблема заключается в том, что часть компиляции отлично работает, но при запуске программы Java я получаю эту ошибку: "Не удалось найти или загрузить основной класс". Я сохраняю все свои программы в папке javalab. Я установил путь к нему. Процедура выглядит следующим образом:

C:\Users\user>cd\

C:\>cd javalab

C:\javalab>autoexec.bat

C:\javalab>set path=C:\Program Files\Java\jdk1.7.0\bin

C:\javalab>javac p1.java

C:\javalab>java p1
Error: Could not find or load main class p1

C:\javalab> 

Ответ 1

У меня была аналогичная проблема с моей самой первой java-программой.

Я выдавал эту команду

java HelloWorld.class

Это привело к той же ошибке.

Оказывается, вам нужно исключить класс .class

java HelloWorld

Ответ 2

Try:

java -cp . p1

Это сработало для меня, когда у меня была такая же проблема, используя Fedora (linux)

Ответ 3

Простой способ скомпилировать и выполнить java файл (HelloWorld.java не содержит никакого пакета)

set path="C:\Program Files (x86)\Java\jdk1.7.0_45\bin"
javac "HelloWorld.java"
java -cp . HelloWorld
pause

Ответ 4

javac должен знать, где искать классы. Попробуйте следующее:

javac -cp . p1.java

Вам не нужно указывать путь к классам. Вы уверены, что файл p1.java существует?

Ответ 5

У меня была почти такая же проблема, но со следующим изменением:

  • Я импортировал готовый к использованию проект maven в Eclipse IDE с ПК1 (проект работал там отлично) на другой ПК2
  • при попытке запустить проект на ПК 2 получил ту же ошибку "Не удалось найти или загрузить основной класс"
  • Я проверил переменную PATH (у меня было много значений в моем случае) и добавлена ​​переменная JAVA_HOME (в моем случае это был JAVA_HOME = C:\Program Files\Java\jdk1.7.0_03) После перезагрузки Ecplise он все еще не работал.
  • Я попытался запустить простой HelloWorld.java на PC2 (в другом проекте) - он работал
  • Итак, я добавил класс HelloWorld к импортированному недавно проекту, выполнил его там и - huh - мой основной класс в этом проекте также начал нормально работать.

Это довольно странное поведение, я не могу это полностью понять. Надеюсь, это поможет кому-то. тоже.

Ответ 6

Я предполагаю, что у вас есть другое имя класса в p1.java

Ответ 7

Сначала проверьте имя класса. Это должно быть p1 в соответствии с инструкцией вашего командного файла. И затем проверьте пакет этого класса, если он находится внутри какого-либо пакета, укажите, когда вы запустите.

Если пакет x.y

java x.y.p1

Ответ 8

Вот мои рабочие переменные пути env после многого устранения неполадок

CLASSPATH

; C:\Program Files (x86)\Java\jre7\lib\ext\QTJava.zip; C:\Program Files (x86)\Java\jdk1.6.0_27\bin

PATH < --- иногда этот PATH заполняет слишком много путей, и вы не можете добавить путь (который был моим случаем!)

bunchofpaths; C:\Program Files (x86)\Java\jdk1.6.0_27\bin

Кроме того, когда вы пытаетесь использовать cmd для выполнения файла... убедитесь, что ваш в локальном каталоге как файл, который вы пытаетесь выполнить (что вы сделали.)

Небольшой контрольный список для людей, у которых есть эта проблема.

Ответ 9

У меня были подобные проблемы. Если вы работаете с Eclipse, вам нужно перейти в папку, в которой у вас есть src/folder... Если вы использовали пакет, то вы используете

javac -cp . packageName/className

что означает, что если у вас был пакет с именем def и основным классом с именем TextFrame.java, вы бы записали

javac -cp . def/TextFrame

опуская конечное расширение .java, а затем запустите его с помощью

java def/TextFrame 

и если у вас есть аргументы, вам необходимо предоставить аргументы, соответствующие вашей программе. Надеюсь, это поможет.

Ответ 10

Сначала поместите файл *.class (например, Hello.class) в 1 папку (например, C:\java). Затем вы попробуете команду и введите cd /d C:\java. Теперь вы можете ввести "java Hello"!

Ответ 11

У вас может быть добавлена ​​переменная среды CLASSPATH!

Используйте следующее, чтобы избежать дальнейшего использования -cp . в java -cp . CLASSFILE

Добавить. для CLASSPATH в свойствах системы → переменных окружения или cmd

set CLASSPATH=%CLASSPATH%;.;

Ответ 12

Я столкнулся с аналогичной проблемой в Eclipse. Всякий раз, когда я нажимал кнопку "Выполнить", он дал мне сообщение "Ошибка: не удалось найти или загрузить основной класс". Но когда я нажимаю правой кнопкой мыши на java файл в проводнике проекта и в настройке Run As Java, он отлично работает.

Я думаю, это потому, что он пытается по умолчанию запускать его в другой конфигурации, которая вызывает проблемы.

Надеюсь, что этот ответ поможет некоторым.

Ответ 13

Если у вас есть один файл .java для компиляции с использованием командной строки, удалите верхние части пакета из кода, скомпилировать снова, он будет работать.

Это сработало для меня.

Ответ 14

Иногда то, что может вызвать проблему, не имеет ничего общего с основным классом. Мне пришлось найти это с трудом, это была ссылка на библиотеку, которую я переехал, и это дало мне:

Не удалось найти или загрузить основной класс xxx Linux

Я просто удаляю эту ссылку и добавляю ее снова, и она снова работает нормально.

Ответ 15

Я имел

':'

в имени моего проекта, например, "HKUSTx: part-2" переименование его "HKUSTx-part-2" работало для меня

Ответ 16

Вы можете использовать NetBeans IDE, которая доступна для загрузки и использования "Open Source". Вы даже можете сделать другой язык программирования в этой среде IDE. Последний из которых поддерживает HTML5. Это упрощает программирование. Если вы не знакомы с ним, выберите книгу, интегрированную с NetBeans, например Sams Teach Selfself Java за 24 часа