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

时间:2018-03-02 03:02:02

标签: java

我是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的新手,所以关于包管理的任何基本提示也将受到赞赏。

2 个答案:

答案 0 :(得分:1)

除非这些包在类路径上并在运行时通过

传递,否则它不会运行
java -classpath 

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

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

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

答案 1 :(得分:1)

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

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

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

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

    <dependency>
        <groupId>nz.ac.waikato.cms.weka</groupId>
        <artifactId>weka-stable</artifactId>
        <version>3.8.0</version>
    </dependency>
    
    1. JAR 存储在主目录中的隐藏目录.m2(或.ivy)中。
    2. 这个想法是你可以简单地获取源代码文件和pom.xml,并让Maven(或类似的构建工具)下载所有依赖项,获取所有必需的编译器插件(或测试-coverage工具,或其他),并构建您的项目。如果你试图在没有构建工具的情况下进行操作,则必须传递永久长的依赖项列表,其中的版本号必须以某种方式在编译程序之前获得,这将是一个巨大的混乱。

      修改:可能会从此处下载:Maven Central: weka-stable