Это нормально, что "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" не работает! Может быть проблема с моей ??
Поскольку я получил ваше подтверждение от следующих ответов, я могу сделать наивный вывод: слишком легко создать класс, который никогда не работает. Просто объявите свой .java в пакете XXX, но не помещайте его в каталог XXX. ИМХО, думаю, это можно использовать как атаку!