2014-12-20 59 views
0

我正在尝试将Apache Commons Math 3.3用于静态数据处理类,并且正在使用Eclipse Mars来创建它。我已经成功下载了bin和src文件,并将它们添加到我的项目的构建路径中;我可以在我的JRE系统库中看到它们。我还在'Javadoc位置'标签中添加了javadoc网址。我成功地从图书馆导入课程。Apache Commons Math'SummaryStatistics无法解析为类型'

但是,当我尝试从AC-M实例化对象时,Eclipse无法将该对象解析为类型。例如,

import org.apache.commons.math3.stat.descriptive.SummaryStatistics.*; 

public class Stats { 

public static double mean(double[] data) { 
    SummaryStatistics curr = new SummaryStatistics(); 
    for (int a = 0; a < data.length; a++) { 
     curr.addValue(data[a]); 
    } 
    double mn = curr.getMean(); 
    return mn;} 

} 

导入语句正常工作。但是,马上Eclipse在我的代码四号线一条错误:

SummaryStatistics不能被解析为一个类型

这种情况出现在所有其他对象,例如PearsonsCorrelation,SimpleRegression等(我成功地导入了所有对象的库的各个部分。)Eclipse提供了一个选项来'修复项目设置..',但点击后,没有解决方案可用。我清理了构建路径无济于事。我很感谢帮助解决这个问题。编辑:我通过选择感兴趣的软件包并单击属性> JRE系统库[jre8]编辑...>安装的JRE ...>编辑...>添加外部JARs ...然后添加jar文件然后将commons-math3-3.3.jar添加到库中。

+0

护理,以显示你怎么说你已经包含在你的项目的Java构建路径apache的公共图书馆吗? – mystarrocks

回答

0

此导入:

import org.apache.commons.math3.stat.descriptive.SummaryStatistics.*; 

不会导入SummaryStatistics本身,只是类中定义的类。 Add:

import org.apache.commons.math3.stat.descriptive.SummaryStatistics; 

+0

谢谢@Joe。当我这样做时,Eclipse读取错误'访问限制:'SummaryStatistics'类型不是 API(对所需库的限制'C:\ Users \ Dan \ Documents \ AC-M \ commons-math3-3.3.jar' )”。 – Dan

+0

见http://stackoverflow.com/questions/2824515/how-to-add-external-library-properly-in-eclipse;不要将外部库添加到您的JRE中,否则您将触发http://stackoverflow.com/questions/9266632/access-restriction-is-not-accessible-due-to-restriction-on-required-library。 – Joe

+0

非常好。我的问题解决了。 – Dan

-1

这是由于Eclipse环境设置为不自动构建 (Project - > Build Automatically)而造成的。

即使我加入了正确的JAR文件(通过项目 - 属性 - Java的 构建路径 - 库),Eclipse中没有重建,这意味着它没有 重新计算新的依赖(与现有不适用他们资源)。

https://www.eclipse.org/forums/index.php/t/67910/