Ошибка компиляции Java:

1

Я работаю вместе с примером практики ATM от Deitel java, как программировать 9-е издание.

Пример изложена в главе 13 на стр. 546 (в случае, если кто-то имеет книгу и хотел бы проверить), я уверен, что мой код на 100% представлен в книге.

У меня есть весь код, но когда я пытаюсь запустить программу, это дает мне следующее:

Error: Could not find or load main class come.example.atm.AtmRun

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

localhost:atm user$ javac AtmRun.java
AtmRun.java:5: error: cannot find symbol
        Atm theATM = new Atm();
        ^
  symbol:   class Atm
  location: class AtmRun
AtmRun.java:5: error: cannot find symbol
        Atm theATM = new Atm();
                         ^
  symbol:   class Atm
  location: class AtmRun
2 errors

это класс am running: прямо вперед, но я не могу найти проблему. любая помощь?

package come.example.atm;
public class AtmRun {

    public static void main (String[] args){
        Atm theATM = new Atm();
        theATM.run();
    }
}

UPDATE: когда я запускаю файл.class из каталога bin проекта, используя команду java AtmRun, я получаю следующее:

Exception in thread "main" java.lang.NoClassDefFoundError: AtmRun (wrong name: come/example/atm/AtmRun)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

У класса Atm есть конструктор Atm() и public void run() вместе с другими методами, класс большой, поэтому я считаю его лучше, если я не размещаю код, но вы можете проверить его в книге, если сможете.

Примечание. Я использую eclipse, другие проекты и классы работают и работают правильно.

  • 0
    Вы уверены, что «прийти» правильно, в «приходят.example.atm» и т. Д.?
  • 0
    Что такое пакет класса Atm ?
Показать ещё 5 комментариев
Теги:
compiler-errors
compilation

1 ответ

0
Лучший ответ

для меня это сработало. Выполните следующие шаги:

Y:\HashmiAb\Desktop\Trash\test>javac come\example\atm\Atm.java

Y:\HashmiAb\Desktop\Trash\test>javac come\example\atm\AtmRun.java

Y:\HashmiAb\Desktop\Trash\test>java come.example.atm.AtmRun
Heloo

Неважно, как вы используете опции -d и -cp для javac и java-команд. Я не использовал ни один из этих вариантов.

Для получения дополнительной информации, пожалуйста, найдите структуру каталогов.

+test
-+come
 -+example
  -+atm
   -AtmRun.java
   -Atm.java

Благодарю.

  • 0
    я попытался скомпилировать и запустить его так же, я также попытался с -d и -cp. все же это все еще дает мне AtmRun.java:5: ошибка: не может найти символ ..., который я упомянул в вопросе. я понятия не имею, почему это не работает, все просто вперед
  • 0
    Можете ли вы поделиться всем путем Atm.java и AtmRun.java?
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню