Java - отсутствует основной класс - PullRequest
4 голосов
/ 19 февраля 2010

Я пытаюсь запустить один из самых первых примеров из книги "Head First Java";

public class MyFirstApp {
public static void main (String[] args){
    System.out.println("I Rule!");
    System.out.println("The Worlds!");
}
}

"javac" создал файл .class из файла .java - но "java"жалуется на" отсутствующий основной класс "при попытке запустить файл .class (я также пробовал java -cp." ... "с тем же результатом):

C:\>java \hfj\MyFirstApp.class
Exception in thread "main" java.lang.NoClassDefFoundError: \hfj\MyFirstApp/class

Caused by: java.lang.ClassNotFoundException: \hfj\MyFirstApp.class
    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: \hfj\MyFirstApp.class.  Program will exit.

Ответы [ 3 ]

6 голосов
/ 19 февраля 2010

Вам нужно запустить его как

javac MyFirstApp.java
java MyFirstApp

Из каталога, где живет MyFistApp.java.

1 голос
/ 19 февраля 2010

'javac' вызывает компилятор - для этого вам нужно передать ваш файл .java.

'java' запустит скомпилированный код - для этого вы передаете имя вашего скомпилированного файла, но без расширения: "java MyFirstApp"

Указание полного пути к файлу должно работатькогда вы не в этом каталоге.Но вы находитесь в каталоге, где находятся программы javac и java?Если нет, им также могут понадобиться абсолютные пути, если вы не указали их в переменной PATH.

0 голосов
/ 19 февраля 2010

Что такое название пакета? Может быть, у вас есть что-то вроде

пакет org.test;

в шапке?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...