NoClassDefFoundError en el programa HelloWorld

Revisé las otras preguntas de NoClassDefFoundError y no encontré una solución que funcione para mí. Estoy usando el IDE de Eclipse para escribir un programa, y ​​funciona bien cuando hago clic derecho -> Ejecutar como aplicación Java en Eclipse, pero al intentar ejecutarlo a través de la línea de comando se encuentra el error anterior. El JRE que estoy usando es (creo) Java60. El programa se compila usando javac HelloWorld.java que funciona bien, luego una llamada a java -cp. HelloWorld arroja el error. Cualquier ayuda para solucionar este problema sería muy apreciada.

El código es:

package tool;

public class HelloWorld {

public static void main(String[] args){
    System.out.println("Hello World!");
}

}

Ejecutando desde "C: \ MADtool \ HostDBtoMADTool \ src \ tool"

La salida de la línea de comando es:

C:\MADtool\HostDBtoMADtool\src\tool>java -cp . HelloWorld
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld (wrong nam
e: tool/HelloWorld)
    at java.lang.ClassLoader.defineClass1(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$100(Unknown Source)
    at java.net.URLClassLoader$1.run(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 sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Respuesta 1

Ingresa las "herramientas" del paquete y crea un javac (que es correcto), pero luego intenta iniciar la clase desde esa carpeta del paquete (lo que está mal).

Primero debe cambiar al directorio src, porque el classpath es relativo a la carpeta de origen. Si usa paquetes (lo que realmente debería hacer). Debe asegurarse de iniciar su código desde la carpeta de inicio correcta:

C:\MADtool\HostDBtoMADtool\src>java -cp . HelloWorld

actualización Eche un vistazo a las definiciones de classpath: Wikipedia

Respuesta: 2

La ejecución $ java HelloWorldbuscará la clase HelloWorlden el paquete predeterminado . No existe tal clase, solo la hay tool.HelloWorld.

Además, si ejecuta $ java tool.HelloWorld, Java intentará encontrar el archivo tool/HelloWorld.class, por lo que debe asegurarse de que su directorio de trabajo sea el directorio que contiene tool/ , no él tool/ mismo.

Respuesta: 3

de mi experiencia muy antigua de comand line compilo mi programa java:

javac MyClass.java

Luego intente ejecutarlo analizando compilen class param con extensión:

java MaClass.class

Entonces me sale esta excepción. Cuando solo analizo el nombre del archivo sin extensión, funciona:

java MyClass
Respuesta: 4

¿Tal vez te faltan algunas dependencias en tu classpath?

Quiero decir que tu clase HelloWorld puede depender de otros frascos que deberían incluirse en el classpath. Eclipse lo hace por usted, pero utilizando la línea de comando debe proporcionar el classpath apropiado.

Respuesta: 5

Mientras ejecuto el rastreador Apache Nutch 1.4, quiero almacenar información adicional. Quiero almacenar el padre de cada URL. Por ejemplo, quiero rastrear una página a.html que tiene 2 enlaces de anclaje a b.html ...

Mis amigos desarrollaron este juego usando Java y me pidieron que hiciera la multicapa. Es un tirador de desplazamiento lateral como los asteroides. Sé que tendría que lidiar con sockets y la identificación prefiere usar tcp ...

Tomcat se inicia con éxito en Eclipse, sin embargo, cualquier acción relacionada con el Servlet da el error a continuación. Sospecho que el problema es que TomCat está buscando clases en la carpeta WEB-INF, aunque tengo ...

Tengo un GenericDAO que delega sus operaciones a una clase pública DataSource clase BaseDAOImpl <T> implementa BaseDAO <T> {DataSource ds; actualización T pública (entidad T) {...