Я пытаюсь создать и запустить программу Java из строки CMD Windows XP, которая завершается неудачей, выполнив следующие действия. Может кто-нибудь сказать мне, что выглядит неправильно / что еще попробовать?
C:\> java -version
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) Client VM (build 19.1-b02, mixed mode)
C:\> mkdir c:\j\
C:\> cd c:\j\
C:\j\> notepad Test.java
(открывается Блокнот, куда я вставляю следующий текст и сохраняю, затем закрываю.)
public class Test{
public static void main(String[] args){
System.out.println("hi");
}
}
C:\j\> javac Test.java
C:\j\> java Test
Exception in thread "main" java.lang.NoClassDefFoundError: test
Caused by: java.lang.ClassNotFoundException: test
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: test. Program will exit.
Реальная проблема заключается в том, что, когда я пытаюсь отладить проект с Eclipse, я получаю сообщение об ошибке, что он «не может создать виртуальную машину Java», и я пытаюсь сначала протестировать компиляцию и запуск программы без IDE, чтобы убедитесь, что моя установка JDK работает.
Обновление: Вы правы, что CLASSPATH установлен на моем компьютере, однако я все еще получаю исключение. Выполнение предложенной строки дает:
C:\j>java -cp . Test
Exception in thread "main" java.lang.NoClassDefFoundError: test (wrong name: Test)
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: test. Program will exit.