Exception in thread “main” java.lang.NoClassDefFoundError Caused by: java.lang.ClassNotFoundExceptio

Discussion in 'Java' started by morpheous.sigma@gmail.com, Jul 1, 2013.

  1. Guest

    I am new to Java, although I have several years experience with other langs(e.g. C/C++ etc). I am trying to run an example program, which uses Ant for its build. I have struggled to get rid of the ClassNotFoundException being thrown for the last four days and despite trying various solutions postedelsewhere on the Internet, I have been unable to solve the problem.

    I wonder if anyone on here can help.

    Here is the stack trace, (as well as my attempts to solve the problem):


    $ ./init-og-examples-db.sh
    ### Creating empty database
    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/tools/ant/Task
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
    Caused by: java.lang.ClassNotFoundException: org.apache.tools.ant.Task
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
    .... 11 more
    Could not find the main class: com.opengamma.util.test.DbTool. Program willexit.
    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/tools/ant/Task
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
    Caused by: java.lang.ClassNotFoundException: org.apache.tools.ant.Task
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
    .... 11 more
    Could not find the main class: com.opengamma.util.test.DbTool. Program willexit.
    ### Adding example data
    Exception in thread "main" java.lang.NoClassDefFoundError: com/opengamma/examples/tool/ExampleDatabasePopulator
    Caused by: java.lang.ClassNotFoundException: com.opengamma.examples.tool.ExampleDatabasePopulator
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
    Could not find the main class: com.opengamma.examples.tool.ExampleDatabasePopulator. Program will exit.
    ### Completed


    I am runing on Ubuntu 12.0.4 and my environment settings are as follows:


    echo $ANT_HOME
    /usr/local/apache-ant-1.9.1
    echo $JAVA_HOME
    /usr/lib/jvm/java-7-oracle/jre


    I have set my CLASSPATH as follows:

    export CLASSPATH=$CLASSPATH:/usr/local/apache-ant-1.9.1/etc:/usr/local/apache-ant-1.9.1/lib


    Can anyone tell me what I am doing wrong?
     
    , Jul 1, 2013
    #1
    1. Advertising

  2. markspace Guest

    On 7/1/2013 12:14 AM, wrote:

    > export CLASSPATH=$CLASSPATH:/usr/local/apache-ant-1.9.1/etc:/usr/local/apache-ant-1.9.1/lib


    This is probably your mistake here. Despite the similar names,
    CLASSPATH does not work like the PATH environment variables in Unix.
    You have to set the classpath to the actual name of the Jar file you
    want to use, or use a '*' as the final element of the class path to use
    all Jar files in a directory. Doing neither of those, like you have,
    actually looks for 'lose' .class files in the file hierarchy.

    export
    CLASSPATH=$CLASSPATH:/usr/local/apache-ant-1.9.1/etc/*:/usr/local/apache-ant-1.9.1/lib/*

    or

    export
    CLASSPATH=$CLASSPATH:/usr/local/apache-ant-1.9.1/etc/some-ant.jar:/usr/local/apache-ant-1.9.1/lib/another.jar
     
    markspace, Jul 1, 2013
    #2
    1. Advertising

  3. Lew Guest

    markspace wrote:
    > wrote:
    >> export CLASSPATH=$CLASSPATH:/usr/local/apache-ant-1.9.1/etc:/usr/local/apache-ant-1.9.1/lib

    >
    > This is probably your mistake here. Despite the similar names,
    > CLASSPATH does not work like the PATH environment variables in Unix.


    All of which is thoroughly explained in the online Java documentation.

    > You have to set the classpath to the actual name of the Jar file you
    > want to use, or use a '*' as the final element of the class path to use
    > all Jar files in a directory. Doing neither of those, like you have,
    > actually looks for 'lose' .class files in the file hierarchy.


    Did you mean "'loose'"?

    > export
    > CLASSPATH=$CLASSPATH:/usr/local/apache-ant-1.9.1/etc/*:/usr/local/apache-ant-1.9.1/lib/*
    >
    > or
    >
    > export
    > CLASSPATH=$CLASSPATH:/usr/local/apache-ant-1.9.1/etc/some-ant.jar:/usr/local/apache-ant-1.9.1/lib/another.jar


    OP, do read the documentation as this will give you the full story.

    --
    Lew
     
    Lew, Jul 2, 2013
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Andy Howells
    Replies:
    4
    Views:
    16,378
    HiteshMehra
    Aug 21, 2007
  2. Froggy
    Replies:
    5
    Views:
    10,455
    Jose Rubio
    Dec 5, 2003
  3. Piotre Ugrumov
    Replies:
    3
    Views:
    14,209
    Mohan Akula
    Jan 28, 2004
  4. dave
    Replies:
    2
    Views:
    2,507
    Roedy Green
    Jul 16, 2004
  5. Replies:
    1
    Views:
    2,198
    Irmen de Jong
    Jun 22, 2004
Loading...

Share This Page