Я скомпилировал и выполнил простой файл Java в IntelliJ. Это содержит основной метод и еще один небольшой статический метод. Это работает отлично каждый раз.
Однако каждый раз, когда я пытаюсь работать java
команда на .class
файл от терминала я получаю это:
Ошибка: не Мог найти или загрузить основной класс [имя файла здесь]
Что я делаю неправильно?
java YourClassName
, нет java YourClassName.class
.Проблема состоит в том, что Вы включаете .class
суффикс в команде.
Существует несколько других возможных объяснений, так как Вы не дали определенную команду, которую Вы выполнили. Возможно, что Вы выполняете команду от куда-нибудь кроме местоположения Вашего .class
файл и не предоставление полного пути к нему, или что Вы пишете его имя c орфографическими ошибками и т.д. Однако включая побочное .class
суффикс, который java
команда не ожидает, наиболее распространенная причина этой проблемы.
Предположим класс, который содержит точку входа Вашей программы (main()
метод), назван Foo
, и что его исходный код был в файле в названном текущем каталоге Foo.java
, так, чтобы Вы скомпилировали свою программу путем выполнения javac Foo.java
. Поскольку Foo
название класса, это производит названный файл Foo.class
содержа скомпилированный байт-код Java для того класса.
Для запущения программы необходимо работать:
java Foo
Ваше описание заставляет его казаться, что Вы вместо этого работаете java Foo.class
. Это - общий камень преткновения для пользователей кто с помощью java
управляйте для выполнения .class
файлы впервые (программируют ли они в Java или просто работают .class
файлы, обеспеченные кем-то еще).
java Foo.class
не будет работать; java
команда интерпретирует свой аргумент как название класса, который содержит точку входа, не название файла. Когда Вы работаете java Foo
это знает для поиска названного файла Foo.class
.