弄清楚我是如何获得Java包的

问题描述 投票:0回答:2

我是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
2个回答
1
投票

这些包是项目的依赖项,因此它们可能已由管理依赖项的工具自动下载。

有几种可能的构建工具可以做到这一点。由于你正在使用Java / JVM,通常的嫌疑人是MavenAnt或者可能(不太可能)GradleSBT

在您的情况下,最可能的情况是:

  1. IDE中某处的Maven插件管理依赖项并下载jar(控制台中的mvn不太可能:如果你使用它,你会注意到的)
  2. pom.xml构建定义文件列出了所有依赖项
  3. weka依赖可能在pom中的某处声明,它看起来应该大致如下:

-

<dependency>
    <groupId>nz.ac.waikato.cms.weka</groupId>
    <artifactId>weka-stable</artifactId>
    <version>3.8.0</version>
</dependency>
  1. JAR存储在主目录中的隐藏目录.m2(或者可能是.ivy)中。

想法是你可以简单地获取源代码文件和pom.xml,让Maven(或类似的构建工具)下载所有依赖项,获取所有必需的编译器插件(或测试覆盖率工具,或其他),并构建您的项目。如果你试图不使用构建工具,你将不得不传递永久长的依赖项列表,其中版本号必须以某种方式在程序编译之前获得,这将是一个巨大的混乱。


编辑:可能从这里下载:Maven Central: weka-stable


1
投票

除非这些包在类路径上并在运行时通过,否则它不会运行

java -classpath 

或者您正在运行包含库的超级JAR文件。

依赖管理的常见解决方案包括pom.xml(Maven),build.gradle(Gradle)或build.sbt(SBT)。

虽然这些不是唯一的选择,但另一种解决方案是将JAR库以某种方式复制到Java安装中

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.