Класс Java хорошо работает в IntelliJ, но не из командной строки

Я скомпилировал и выполнил простой файл Java в IntelliJ. Это содержит основной метод и еще один небольшой статический метод. Это работает отлично каждый раз.

Однако каждый раз, когда я пытаюсь работать java команда на .class файл от терминала я получаю это:

Ошибка: не Мог найти или загрузить основной класс [имя файла здесь]

Что я делаю неправильно?

0
задан 22 July 2017 в 18:36

1 ответ

Необходимо работать 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.

1
ответ дан 2 November 2019 в 21:35

Другие вопросы по тегам:

Похожие вопросы: