«Не удалось найти основной класс: MineAvtaler. Программа будет завершена».- Только при работе вне Eclipse - PullRequest
0 голосов
/ 04 мая 2011

Я сделал свое заявление в Eclipse.Это довольно просто и содержит около 1000 строк с кодом.Мой класс MineAvtaler содержит мою основную функцию.

Я успешно запускаю ее с помощью кнопки «Выполнить» в Eclipse.Однако всякий раз, когда я пытаюсь запустить код из командной строки, я получаю сообщение об ошибке в заголовке.Я скомпилировал так: javac MineAvtaler.java Avtaledata.java Avtale.java

И попытался запустить приложение так:

  • java MineAvtaler
  • javaw MineAvtaler.java

Последний выдает сообщение об ошибке в окне сообщения, а не в консоли.

Почему моя программа не запускается за пределами Eclipse?

I'mиспользуя Windows 7 и установите JDK.Это трассировка стека, которую я получаю:

C:\Users\Codemonkey1991\Desktop\mineavtaler>java MineAvtaler Avtaledata Avtale
Exception in thread "main" java.lang.NoClassDefFoundError: MineAvtaler (wrong name: mineavtaler/MineAvtaler)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClassCond(Unknown Source)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$000(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: MineAvtaler.  Program will exit.

* Вот исходный код: *

1 Ответ

4 голосов
/ 04 мая 2011

Это проблема пакетов.MineAvtaler находится внутри пакета с именем mineavtaler (капитализация символов важна), как указано в первой строке вашего источника.Таким образом, у вас, вероятно, есть каталог с именем mineavtaler, созданный для вас Eclipse.Это не каталог, который вы создали для проекта, это «специальный» каталог, созданный Eclipse, в который он поместил ваш MineAvtaler.java файл.

Вам не нужно открывать терминал здесь.Вместо этого откройте его в родительском каталоге и запустите: java mineavtaler.MineAvtaler.Таким образом, это должно работать.

РЕДАКТИРОВАТЬ : выполнить java mineavtaler.MineAvtaler из C:\Users\Codemonkey1991\Desktop\

При вызове команды "java" вы всегда должны соблюдать структуру пакета.См. http://download.oracle.com/javase/tutorial/java/package/packages.html для получения дополнительной информации.

...