软件包org.apache.commons不存在

Gal*_*lia 5 java apache javac classpath

我很乐意使用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  };
Run Code Online (Sandbox Code Playgroud)

我正在Windows XP的jdk7上运行,从命令行运行

我做:

还是我有一个神秘的

    "error: package org.apache.commons does not exist"
Run Code Online (Sandbox Code Playgroud)

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

注意:

没有类路径,也没有导入“ 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();  
    } 
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 6

这就是问题:

import org.apache.commons.math3;
Run Code Online (Sandbox Code Playgroud)

这是试图导入一个- 你不能这样做。您必须使用通配符导入:

import org.apache.commons.math3.*;
Run Code Online (Sandbox Code Playgroud)

或导入特定类型:

import org.apache.commons.math3.SomeTypeHere;
Run Code Online (Sandbox Code Playgroud)

就您而言,听起来您实际上想要:

import org.apache.commons.math3.distribution.EnumeratedIntegerDistribution;
Run Code Online (Sandbox Code Playgroud)

我已经尝试了一个示例类,其中包含该导入和从 Apache 下载的 jar 文件,并且它工作得很好。