É um erro bobo, mas já foi alvo de um “RFE” (Request for Enhancement) na Sun.
Já aconteceu comigo, não se ache o cara mais idiota do mundo por causa disso.
Basicamente é que você compila uma classe com:
javac MinhaClasse.java
(ou seja, você precisa dizer que o arquivo é .java)
mas você roda essa classe com:
java -cp . MinhaClasse
(ou seja, você não dá o nome do arquivo, que é MinhaClasse.class, e sim o nome da classe, que é MinhaClasse).
O que foi alvo de um RFE é que o java.exe devia lhe dar a seguinte mensagem:
Exception in thread “main” java.lang.NoClassDefFoundError: nomedaclasse/class
You need to run “java nomedaclasse”, not “java nomedaclasse.class”.
Ou seja, ele deveria lhe explicar porque o erro aconteceu.