2011-01-07 12 views
12

Esta es una de esas preguntas terriblemente embarazosas, me temo.Excepción en el hilo "principal" java.lang.NoClassDefFoundError: DiServer <nombre incorrecto: ds/DiServer>

Tengo un programa en Eclipse:

package ds; 
    public class DiServer { 
public static void main(String[] args) { 
    int foo = 0; 
    int bar = 0; 
    /*bla*/ 
    } 
    } 

simple derecho? Esto funciona completamente bien cuando se ejecuta en Eclipse.

Quiero ejecutar esto desde la línea de comandos. He copiado bin Folder, con la carpeta ds dentro y DiServer.class en ds, y .classpath

He puesto estos en una carpeta separada, C: \ My Documents \ DiTest, símbolo del sistema abierto, ido a C : \ Mis documentos \ DiTest \ ds \ mecanografiado y java DiServer

El error que consigo es Exception in thread "main" java.lang.NoClassDefFoundError: DiServer <wrong name:ds/DiServer> ... Could not find the main class: DiServer. Program will exit.

he tratado java -classpath. DiServer, java -classpath ../ .. DiServer, moviendo .classpath a la carpeta ds, pero parece que no puedo evitar esto. Estoy 99% seguro de que es un problema de classpath pero no puedo resolver cómo solucionarlo.

Agradecería cualquier ayuda como siempre, y la oferta habitual de una pinta siempre está en pie.

Muchas gracias de antemano,

M

Respuesta

24

clase nombre completo Usted es ds.DiServer, no DiServer. De C:\My Documents\DiTest:

java -cp . ds.DiServer 

Y voilà .

+0

No estoy en la oficina para probar esto, pero tomaré su palabra y lo averiguaré el lunes por la mañana. Gracias a los dos por las excelentes respuestas, si pudiera elegir ambas como las mejores, pero como solo puede haber una, se la daré a la que tenga la mejor explicación del problema, que es esta. Muchas gracias de nuevo, su pinta puede reclamarse en cualquier momento :) – Myn

+0

'java -cp .' ¿es obligatorio? –

+0

Sí, a menos que haya incluido '.' en su variable de entorno' CLASSPATH'. – gabuzo

11

Goto C:\My Documents\DiTest\ds\

javac DiServer.java 

Goto C:\My Documents\DiTest\

java ds.DiServer 

Vea también

+0

y, si lo está ejecutando en eclipse, el primer paso debería ser innecesario, simplemente busque la raíz del directorio de salida (bin) y ejecute java ds.DiServer desde allí. – KevinDTimm

Cuestiones relacionadas