繁体   English   中英

错误:包 org.apache.commons.collections15 不存在

[英]Error: package org.apache.commons.collections15 does not exist

我想运行一个java 包来测量我的社区检测算法的质量,但我遇到以下错误:

Standalone.java:22: error: package org.apache.commons.collections15 does not exist 

似乎该软件包并未默认安装在 java 中,因为我已经使用sudo apt-get install default-jdk和类似命令安装了 java。 我在https://github.com/cloudera/collections-generic 中找到了包含集合 15 的包。Java 不是我的编程语言,我不知道如何安装包; 我应该把它放在特定的文件夹中吗?

org.apache.commons.collections15 在 apache commons collection jar 中可用。 您需要在类路径中包含 jar。

如果您使用的是 maven,那么在您的 pom.xml 中添加它

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

一些Java背景

Java 有一个称为库依赖项的概念,(在本例中)您可以将其视为对 Java 核心 API 的扩展。 用外行的话来说,它们是自包含的代码“单元”,让您可以访问 Java 中没有默认的编程结构(方法、类、接口等)。 一些附加信息

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

您的具体情况

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

  • 导入 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 行,您将看到以下具有这两个相关属性的类路径条目

  • sourcepath="/home/reihaneh/.m2/repository/net/sourceforge/collections/collections-generic/4.01/collections-generic-4.01-sources.jar"
  • path="libs/jung2-2_0_1/collections-generic-4.01.jar"

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM