rror:包org.apache.commons.collections15不存在

时间:2017-01-30 03:49:28

标签: java collections

我想运行java package for measuring quality of my community detection algorithm,但遇到以下错误:


sudo apt-get install default-jdk

似乎默认情况下没有在java中安装软件包,因为我已经使用var obj = { "key1": { "key2": [{ "key3": [{ "key4": { "key5": 0 } }, { "key6": { "key7": "" } }] }, { "key8": { "key9": true } }] } }; var keys = []; function collectKey(obj) { if (obj instanceof Array) { //console.log("array"); for (var i = 0; i < obj.length; i++) { collectObj(obj[i]); } } else if (typeof obj == "object") { //console.log("object"); collectObj(obj) } else { return; } } function collectObj(obj) { for (var i = 0; i < Object.keys(obj).length; i++) { keys.push(Object.keys(obj)[i]); collectKey(obj[Object.keys(obj)[i]]); } } collectKey(obj); console.log(keys);和类似的命令安装了java。 我在https://github.com/cloudera/collections-generic中找到包含集合15的包.Java不是我的编程语言,我不知道如何安装包;我应该把它放在特定的文件夹中。

2 个答案:

答案 0 :(得分:3)

org.apache.commons.collections15在apache commons集合jar中可用。你需要在类路径中使用jar。

如果您使用的是maven,请将其添加到您的pom.xml

<dependency>
    <groupId>commons-collections</groupId>
    <artifactId>commons-collections</artifactId>
    <version>3.0</version>
</dependency>

答案 1 :(得分:1)

一些Java背景

Java有一个被称为库依赖的概念,在这种情况下,您可以将其视为Java核心API的扩展。通俗地说,它们是自包含的代码“单元”,可以让您访问程序结构(方法,类,接口等),这些结构在Java中无法实现。一些额外的信息

  • 它们被组织成一个包(喜欢的东西的分组),这些包被导入到使用它们的 .java 文件的顶部
  • 这些包是唯一的,如您所见,通常采用 tld.companyname.projectname.subgroup1.subgroup2 ... etc 的形式(这保证了唯一性)
  • 它们也是用Java编写的(通常)
  • 需要将它们添加到您的类路径(一个标识代码编译位置的设置)
  • 您可以实际添加它们或使用某种类型的构建和依赖管理工具,如Maven,Ant Ivy,Gradle等。

您的具体案例

这种情况的错误告诉我们一些事情。首先它告诉我们错误发生在第22行的Standalone.java文件中。另外它告诉我们问题正在发生,因为Apache Commons库不存在。如果您查看Standalone.java文件,您将在第22行看到以下导入

  • import org.apache.commons.collections15.Transformer;

一般解决方案

此问题的一般解决方案完全取决于您如何构建此应用程序。通常,您需要执行以下操作:

  • 首先弄清楚该程序是否使用任何依赖关系管理工具。 pom.xml文件表示Maven,build.xml文件表示ANT等。快速搜索我没有看到任何工具被使用。我一般
  • https://commons.apache.org/
  • 下载Apache Commons库
  • 将jar文件放在/ libs文件夹
  • 将该jar添加到类路径

具体解决方案

在项目根目录中,您将看到 .classpath 文件。该文件由定义项目类路径的Eclipse IDE生成。该文件应该有一个指向Commons jar文件的条目。在第3行,您将看到以下带有这两个相关属性的类路径条目

  • 源路径= “/家/ reihaneh / .m2目录/库/净/ sourceforge的/集合/集合泛型/ 4.01 /集合泛型-4.01-sources.jar”
  • 路径= “库/ jung2-2_0_1 /集合泛型-4.01.jar”

我认为这里的问题是 sourcepath 属性。它被明确分配了一个绝对的URI(大概)不适用于你。尝试为其分配与路径属性相同的值。