1. We have moved from vBulletin to XenForo and you are viewing the site in the middle of the move. Though the functional aspect of everything is working fine, we are still working on other changes including the new design on Xenforo.
    Dismiss Notice

Trouble Adding .jar to classpath

Discussion in 'Java' started by zhacker, Feb 1, 2012.

  1. zhacker

    zhacker New Member

    Hi everyone,

    I have been programming in java for a while but I haven't used external .jar archives previously. Now, I am faced with the current situation:


    1- I have a java file (SNPHarvester.java) located in my /home directory.
    2- Under: /home/lib/ I have two .jar archives, namely: commons-math-1.2.jar and weka.jar
    3- In the sourcecode (SNPHarvester.java), I have the following import statements:

    import weka.core.Utils;

    import org.apache.commons.math.distribution.ChiSquaredDistribution;
    import org.apache.commons.math.distribution.ChiSquaredDistributionImpl;


    Now:

    my weka.jar has the structure: weka/core/Utils.class
    my commons-math-1.2.jar contains the structure: /org/apache/commons/math/distribution/ChiSquaredDistribution.class and ChiSquaredDistributionImpl.class - However, notice the name of the .jar archive - unlike my weka.jar, commons-math-1.2 does not show up in the import statement.


    Now, when I compile using the following:

    javac -cp ".:lib/weka.jar:lib/commons-math-1.2.jar" SNPHarvester.java it outputs the following:

    [zibrahimbrc@bignode lib]$ javac -cp ".:lib/weka.jar:lib/commons-math-1.2.jar" SNPHarvester.java
    javac: file not found: SNPHarvester.java
    Usage: javac <options> <source files>
    use -help for a list of possible options


    Which I am assuming it's okay. However, the following exception is generated when I run the corresponding .class file:

    [zibrahimbrc@bignode snp_harvester]$ java SNPHarvester
    Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/math/distribution/ChiSquaredDistribution
    Caused by: java.lang.ClassNotFoundException: org.apache.commons.math.distribution.ChiSquaredDistribution
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    Could not find the main class: SNPHarvester. Program will exit.


    It's not finding the classes in commons-math-1.2.jar


    Any ideas about what I'm doing wrong? your help is highly appreciated. Thank you very much in advance.
     

Share This Page