NoClassDefFoundError when running java program in linux/ubuntu -


i'm unable run java program in linux/ubuntu.
i've been working on problem whole day , can't seem find solution. wrote small java program using eclipse on windows 7 machine , works fine. here's code:

//start of java program jsonreader package jsonreader; //imports needed run program import java.io.filenotfoundexception; import org.codehaus.jackson.map.*; import org.codehaus.jackson.*; 

in order import org.codehause.jackson.. work, had manually include in project jar file: jackson-all-1.9.11.jar

    //class jsonreader     public class jsonreader {     //start of main              public static void main (string[] args) throws filenotfoundexception { 

the rest of program works fine.

the next step project run on ubuntu - command line. did export on eclipses: file -> export -> general -> archive file -> , created zip file.

this zip file transferred linux/ubuntu enviornment. there, unzipped file. directory structure:

in home directory have:

/jsonreader --> has following directories in it:                -/bin/jsonreader/jsonreader.class                -/lib/jackson-all-1.9.11.jar                -/src/jsonreader/jsonreader.java                -.classpath (file); , few other files. 

in /jsonreader/src/jsonreader run command: javac jsonreader.java --> error:

    jsonreader.java:6: package org.codehaus.jackson.map not exist     import org.codehaus.jackson.map.*;     ^     jsonreader.java:7: package org.codehaus.jackson not exist     import org.codehaus.jackson.*;     ^ 

then run command:

javac -classpath /jsonreader/lib/jackson-all-1.9.11.jar jsonreader.java  

i no errors. command creates jsonreader.class file in /src/jsonreader directory. try run file using command:

java jsonreader  

i error:

exception in thread "main" java.lang.noclassdeffounderror: jsonreader (wrong name: jsonreader/jsonreader)         @ java.lang.classloader.defineclass1(native method)         @ java.lang.classloader.defineclass(classloader.java:634)         @ java.security.secureclassloader.defineclass(secureclassloader.java:142)         @ java.net.urlclassloader.defineclass(urlclassloader.java:277)         @ java.net.urlclassloader.access$000(urlclassloader.java:73)         @ java.net.urlclassloader$1.run(urlclassloader.java:212)         @ java.security.accesscontroller.doprivileged(native method)         @ java.net.urlclassloader.findclass(urlclassloader.java:205)         @ java.lang.classloader.loadclass(classloader.java:321)         @ sun.misc.launcher$appclassloader.loadclass(launcher.java:294)         @ java.lang.classloader.loadclass(classloader.java:266) not find main class: jsonreader. program exit. 

this entire error message i'm getting, when running on command line.

i'm not sure why i'm getting error , how resolve it.

you have run program so

java -cp /jsonreader/lib/jackson-all-1.9.11.jar jsonreader.jsonreader  

assuming jackson jar in /jsonreader/lib.

you need use qualified class name of class main method want run.


an example can work.

create following structure

/project     /src         /jsonreadertemp             /jsonreader.java     /bin          /jsonreadertemp             /jsonreader.class     /lib         /jackson-all-1.9.11.jar 

you can either create manually or use command line it, you.

with above, cd project , run

java -cp lib/jackson-all-1.9.11.jar;bin jsonreadertemp.jsonreader 

note ; separator classpath directories.


note java convention states class names should start uppercase character, jsonreader , package names should lowercase, separating words . if need (but there shouldn't words that).


Comments

Popular posts from this blog

c# - How Configure Devart dotConnect for SQLite Code First? -

c++ - Clear the memory after returning a vector in a function -

erlang - Saving a digraph to mnesia is hindered because of its side-effects -