包org.apache.commons不存在

时间:2013-12-30 17:44:02

标签: java apache classpath javac

我想使用EnumeratedIntegerDistribution()中的org.apache.commons.math3.distribution来获取离散概率分布

int[] nums_to_generate          = new int[]    { -1,   1,    0  };
double[] discrete_probabilities = new double[] { 0.4, 0.4, 0.2  };

我在Windows Xp上运行jdk7,从命令行运行

我做:

  • 添加到我的源文件

    import org.apache.commons.math3; 
    
  • 下载commons-math3-3.2并将其解压缩到我当前的文件夹
  • 使用类路径编译我的源:(或者)

    javac -cp ./commons-math3-3.2/commons-math3-3.2.jar:. ConflictsAnimation.java
    javac -cp   commons-math3-3.2/commons-math3-3.2.jar   ConflictsAnimation.java
    

我仍然有一个神秘的

    "error: package org.apache.commons does not exist"

谁知道会发生什么?我真的需要帮助。

注意:

  

编译(和运行)没有类路径,没有   导入“apache”并调用numeratedIntegerDistribution()。

     

使用类路径进行编译,而不使用“appache”   废话错误。

非常感谢你的优秀技能,程序员!


这是简短的演示:

import java.lang.Math.*;
import org.apache.commons.math3;

public class CheckMe {

    public CheckMe() {

        System.out.println("let us check it out"); 
        System.out.println(generate_rand_distribution (10));
    }

    private static int[] generate_rand_distribution (int count){
    int[] nums_to_generate          = new int[]    { -1,   1,    0  };
        double[] discrete_probabilities = new double[] { 0.4, 0.4, 0.2  };
    int[] samples = null;

        EnumeratedIntegerDistribution distribution = 
        new EnumeratedIntegerDistribution(nums_to_generate, discrete_probabilities);

        samples = distribution.sample (count);

    return (samples);
    }   

    public static void main (String args[]) { 
        System.out.println("Main: ");
        CheckMe  animation = new CheckMe();  
    } 
}

1 个答案:

答案 0 :(得分:4)

这是问题所在:

import org.apache.commons.math3;

尝试导入 - 您无法做到这一点。您必须使用通配符导入:

import org.apache.commons.math3.*;

或导入特定类型:

import org.apache.commons.math3.SomeTypeHere;

在你的情况下,听起来你真的想要:

import org.apache.commons.math3.distribution.EnumeratedIntegerDistribution;

我尝试过使用 导入的示例类和从Apache下载的jar文件,它运行正常。