Sou iniciante, e meu português e ruim por que sou estrangeiro e estou aprendendo. O seguinte par de classes compila bem
package certification;
class Parent{
int x = 9; // default access
}
e a outra:
package certification;
class Child extends Parent{
static public void main(String[] args) {
Child sc = new Child();
sc.testIt();
}
public void testIt() {
System.out.println("Variable x is " + x); // No problem;
}
}
Compilo com java -d . *.java, para que crie o pacote com os .class, mas quando executo a aplicação dá:
Exception in thread “main” java.lang.NoClassDefFoundError: Child(wrong name: certification/child)
at java.lang.ClassLoader.defineClass(Native Method)
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)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Could not find the main class: Child. Program will exit.
No eclipse aparece tambem, não aparecem errores de compilação mas quando executo :
Selection does not contain main type
Po outro lado se eu tiro as declaraçoes de pacote package certification; em ambas classes, compila e executa sem problema.
Qual é o problema? Eu diretamente copie o codigo dum livro onde supuestamente compilaria e executaría sem problema.
Alguem me pode judar?