我是Java的新手。我在我的电脑上运行别人的程序,他们有以下导入:
import weka.classifiers.CostMatrix;
import weka.classifiers.Evaluation;
import weka.classifiers.meta.CostSensitiveClassifier;
import weka.core.*;
该程序实际上适合我,但我很惊讶,因为weka是一个非常专业的程序,所以我怀疑它是与Java一起分发的。我从未使用任何软件包管理器安装weka,并且我搜索了程序代码,并且它没有明确包含任何weka软件包。
你有任何提示可以搞清楚1)这些软件包的安装位置,以及2)我如何在本地计算机上“获取”这些软件包?我已经读过Java没有像Python或Perl这样的集中式包管理器,所以这可能会让它变得更难。我是Java的新手,所以关于包管理的任何基本技巧也将受到赞赏。
这些包是项目的依赖项,因此它们可能已由管理依赖项的工具自动下载。
有几种可能的构建工具可以做到这一点。由于你正在使用Java / JVM,通常的嫌疑人是Maven和Ant或者可能(不太可能)Gradle或SBT。
在您的情况下,最可能的情况是:
mvn
不太可能:如果你使用它,你会注意到的)pom.xml
构建定义文件列出了所有依赖项-
<dependency>
<groupId>nz.ac.waikato.cms.weka</groupId>
<artifactId>weka-stable</artifactId>
<version>3.8.0</version>
</dependency>
.m2
(或者可能是.ivy
)中。想法是你可以简单地获取源代码文件和pom.xml
,让Maven
(或类似的构建工具)下载所有依赖项,获取所有必需的编译器插件(或测试覆盖率工具,或其他),并构建您的项目。如果你试图不使用构建工具,你将不得不传递永久长的依赖项列表,其中版本号必须以某种方式在程序编译之前获得,这将是一个巨大的混乱。
编辑:可能从这里下载:Maven Central: weka-stable
除非这些包在类路径上并在运行时通过,否则它不会运行
java -classpath
或者您正在运行包含库的超级JAR文件。
依赖管理的常见解决方案包括pom.xml
(Maven),build.gradle
(Gradle)或build.sbt
(SBT)。
虽然这些不是唯一的选择,但另一种解决方案是将JAR库以某种方式复制到Java安装中