Нормально ли, что "java Hello3" (с Hello3.class - java-класс) дает мне:
Exception in thread "main" java.lang.NoClassDefFoundError: Hello3 (wrong name: pp/Hello3)
Hello3.class - это скомпилированный двоичный файл для Hello3.java. Этот java-файл объявлен как находящийся в каком-то пакете «pp», но не помещен в каталог «pp».
package pp;
public class Hello3 {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
Моя команда java Hello3.java выполняется в том же каталоге, что и Hello3.java. Более того, даже команда "java -cp. Hello3" не работает! Может проблема с моей ???
Поскольку я получил ваше подтверждение из следующих ответов, я могу сделать здесь наивный вывод: слишком легко создать .class, который никогда не работает. Просто объявите свой .java в пакете XXX, но не помещайте его в каталог XXX. ИМХО, думаю, это можно использовать как атаку!