我是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的新手,所以关于包管理的任何基本提示也将受到赞赏。
答案 0 :(得分:1)
除非这些包在类路径上并在运行时通过
传递,否则它不会运行java -classpath
或者您正在运行包含库的超级JAR文件。
依赖关系管理的常见解决方案包括pom.xml
(Maven),build.gradle
(Gradle)或build.sbt
(SBT)。
虽然这些不是唯一的选择,但另一种解决方案是将JAR库以某种方式复制到Java安装中
答案 1 :(得分:1)
这些包是项目的依赖项,因此它们可能已由管理依赖项的工具自动下载。
有几种可能的构建工具可以做到这一点。由于您使用的是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
(或类似的构建工具)下载所有依赖项,获取所有必需的编译器插件(或测试-coverage工具,或其他),并构建您的项目。如果你试图在没有构建工具的情况下进行操作,则必须传递永久长的依赖项列表,其中的版本号必须以某种方式在编译程序之前获得,这将是一个巨大的混乱。
修改:可能会从此处下载:Maven Central: weka-stable