Если ваш класс не является полностью автономным (т. Е. Содержит только java.lang
классы, такие как String
), вам потребуется добавить другие классы / JAR-файлы в classpath при вызове Java.
NoClassDefFoundError
(который, кстати, обычно указывает имя класса и всегда включает в себя трассировку стека) указывает на то, что внешний класс, который был доступен, когда ваш класс был скомпилирован, недоступен в пути к классам во время выполнения.
РЕДАКТИРОВАТЬ на основе обновления:
Вы неправильно запускаете процесс.Вам не нужно добавлять суффикс .class
к файлу - это заставляет Java искать класс файла class
в подпакете.
(PS вы сказали, что запускали java MyFile
. Этоложь, ты на самом деле запустил java PersonTest.class
. Если бы ты заметил, что для начала, людям было бы намного легче ответить на вопрос!)