弄清楚我是如何得到一个Java包的

弄清楚我是如何得到一个Java包的,java,Java,我对Java非常陌生。我正在我的计算机上运行其他人的程序,他们有如下导入: import weka.classifiers.CostMatrix; import weka.classifiers.Evaluation; import weka.classifiers.meta.CostSensitiveClassifier; import weka.core.*; 这个程序实际上适合我,但我很惊讶,因为weka是一个非常专业的程序,所以我怀疑它是用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非常陌生,因此任何关于包管理的基本技巧都将受到欢迎。

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

java -classpath 
或者您正在运行一个包含库的uber JAR文件

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


虽然这些不是唯一的选项,但另一个解决方案是那些JAR库已经以某种方式复制到Java安装中了

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

java -classpath 
或者您正在运行一个包含库的uber JAR文件

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

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

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

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

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

  • IDE中的某个Maven插件管理依赖项并下载JAR(
    mvn
    在console中不太可能:如果您使用它,您会注意到)
  • A
    pom.xml
    生成定义文件列出了所有依赖项
  • weka依赖项可能在pom中的某个位置声明,它大致如下所示:
  • -

    
    nz.ac.waikato.cms.weka
    

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

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

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

  • IDE中的某个Maven插件管理依赖项并下载JAR(
    mvn
    在console中不太可能:如果您使用它,您会注意到)
  • A
    pom.xml
    生成定义文件列出了所有依赖项
  • weka依赖项可能在pom中的某个位置声明,它大致如下所示:
  • -

    
    nz.ac.waikato.cms.weka
    

    检查您的类路径。你是怎么运作的?你在用Maven吗?
    echo%CLASSPATH%
    只是把
    %CLASSPATH%
    还给了我,所以我想它没有设置?我通过IntelliJ IDEA运行它,但它使用Java SDK,我知道它在哪里。至于Maven,我不知道如何判断这个程序是否在使用它。如何操作?在IntelliJ中,按
    F4
    打开模块设置,您可以在其中看到每个模块的所有依赖项及其位置。@xiaofeng.li F4不工作(我有默认的键映射)。你知道如何通过菜单到达那里吗?右键单击项目,上下文菜单中应该有一个“打开模块设置”。检查你的类路径。你是怎么运作的?你在用Maven吗?
    echo%CLASSPATH%
    只是把
    %CLASSPATH%
    还给了我,所以我想它没有设置?我通过IntelliJ IDEA运行它,但它使用Java SDK,我知道它在哪里。至于Maven,我不知道如何判断这个程序是否在使用它。如何操作?在IntelliJ中,按
    F4
    打开模块设置,您可以在其中看到每个模块的所有依赖项及其位置。@xiaofeng.li F4不工作(我有默认的键映射)。你知道如何通过菜单到达那里吗?右键单击项目,上下文菜单中应该有一个“打开模块设置”。宾果,我的根文件夹中有一个pom.xml。它包含以下内容:nz.ac.waikato.cms.weka-weka-stable 3.8.0它还分别具有指向下的存储库的URL路径,尽管我不确定这两者如何相互连接。但我猜这些软件包是从那里拉过来的。@Stephen的weka本身可能是直接从Maven Central拉过来的(见我文章的更新)。这些插件略有不同,这是为了下载maven本身使用的插件,它们不被您的代码或weka使用。谢谢。我如何知道Maven是否正在使用Maven Central?还是内置的?@Stephen这是一种内置的:默认情况下,maven中央存储库位于与maven一起安装的所谓的“超级pom”中。但它本质上只是另一个xml文件,具有一系列默认设置,格式与您已经看到的pom.xml相同。更多信息:宾果,我的根文件夹中有一个pom.xml。它包含以下内容:nz.ac.waikato.cms.weka-weka-stable 3.8.0它还分别具有指向下的存储库的URL路径,尽管我不确定这两者如何相互连接。但是我