Ошибка компилятора - Ошибка: не удалось найти или загрузить основной класс com.sun.tools.javac.Main '

Я только начал изучать Java, и я установил JDK на свой компьютер, но теперь я пытаюсь использовать SIMPLIST Java и не компилирую. Я установил JDK на C:/Java/jdk7/.

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

Error: Could not find or load main class com.sun.tools.javac.Main

Вот как я компилирую:

javac test.java

Я также пробовал:

javac.exe test.java

Я не знаю, был ли мой код неправильным или что-то еще, но вот мой test.java:

class test {
    public static void main(String args[]) {
        System.out.println("Hello World!");
    }
}

Вот JAVA_HOME:

C:\Java\jdk7\

Любая помощь будет оценена!

Ответ 1

Возможно, вы сделали ручную установку JDK. Во всяком случае, эта ошибка почти наверняка объясняется недостатком вашей установки Java. Чтобы решить эту проблему, вы должны выполнить следующую команду в каталоге JAVA_HOME/lib:

unpack200 -r -v -l "" tools.pack tools.jar

Это распакует файл tools.jar, который ваша установка (ручная или нет) не сделана для вас. После этого попробуйте выполнить:

javac -version

Эта команда должна работать хорошо. Это похоже на ошибку, которую вы можете иметь с помощью команды Java, в основном по той же причине, ваша установка не распаковывала необходимые файлы. Вы можете ссылаться на эту ссылку: JRE 1.7 возвращает: java/lang/NoClassDefFoundError: java/lang/Object

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

Ответ 2

Вы перезагрузились после установки? Существуют важные переменные среды (а именно CLASSPATH), которые не установлены до перезагрузки Windows. В любом случае, вы можете обойти это, добавив rt.jar и tools.jar к вашему CLASSPATH. Кроме того, вы должны убедиться, что ваш JAVA_HOME установлен.

Ответ 3

Исходный код в порядке.

Средство регистрации ошибок не могло найти класс, включенный tools.jar. Tools.jar всегда включен JDK.  Итак, я предполагаю, что вы используете неправильный JDK. Итак, вы пытаетесь написать полный путь javac, который вы установили.

пример) "C:\Program Files\java\jdk1.7.0_25\bin\javac" test.java(windows)


 Если он сработал, JDK в переменной пути неверен. Таким образом, вы добавляете путь к переменной "C:\Program Files\java\jdk1.7.0_25\bin \" (например) к переменной пути.
(См. http://www.computerhope.com/issues/ch000549.htm)

Если это не сработало, вы проверяете... \jdk1.7.0_25\lib\tools.jar. Если он не существует, это неправильно. Итак, вы пытаетесь установить.

 Если он существует, ммм, я не знаю. Я рекомендую вам переустановить.

Ответ 4

Сначала убедитесь, что в вашем jdk\lib folder есть инструмент .jar.

Если это так, выполните следующие действия:

  • Выполните следующий код в командной строке в каталоге jdk

    for %I in (.) do echo %~sI
    

Даже если вы не находитесь в каталоге jdk, просто добавьте имя каталога вместо "."., Этот код вернет вам путь dos. Скопируйте вставить путь dos в JAVA_HOME.

  1. Запустите вышеуказанный код еще раз, когда вы находитесь в JAVA_HOME\lib. Скопируйте пасту в переменную среды с именем CLASSPATH. Просто добавьте "\tools.jar" в конец.

Даже если это не поможет попробовать переустановить Java (или просто извлечь файл tools.jar для перекрестной проверки). Надеюсь, что это поможет.

Ответ 5

У меня много версий JDK на моем ноутбуке, сегодня я столкнулся с этой проблемой: после того, как я переключился на JDK1.7 на свой JAVA_HOME, я набрал javac в cmd и получил эту ошибку. Наконец, я удалил JDK1.7 и переустановил его, и проблема исчезла.

Ответ 6

Я столкнулся с проблемой JDK1.7_67.

Я решил это, разделив установки JDK и JRE.

JDK установлен в D:\Java\jdk1.7_67 со своей собственной папкой jre/lib и JRE, установленной в D:\Java\jre1.7_67 со своей собственной папкой lib.

Это решило проблему tools.jar для меня.

Ответ 7

"javac.exe" отсутствует в вашей папке bin в jdk. Проверьте его, если его там нет, просто скопируйте файл "javac.exe" из папки java/jdk/bin любого из компьютеров вашего друга, которые также используют java. Надеюсь, это поможет вам. Спасибо вам