是否可以将依赖项 class 二进制文件作为参数添加到 "javac"。(直接从终端编译 java 文件)

Is it possible to add dependency class binaries to "javac" as a argument.(compiling a java file directly from terminal)

每当我想看到 java library/functions 的行为时,我总是创建一个扩展名为 .java 的文件并向其中添加演示代码。我将尝试使用 javac(编译)和 java(到 运行)从终端编译和 运行 文件。

最近,我想了解“org.apache.commons.lang.RandomStringUtils”中方法“random”的行为。但是当我尝试编译它时,出现“包 org.apache.commons.lang 不存在”错误。
我知道我没有将 apache 库添加到系统路径等任何地方,编译器无法找到它。我发现了一些与 maven/ 或其他 ide 和 java 包相关的信息,并使用了类路径参数,但我不确定如何在我的场景中 运行 它。

我已经从 here 下载了 apache commons 二进制文件。
我想知道是否有办法在编译时将此路径信息作为参数提供给“javac”命令。或者如果有任何其他方法可以通过仅进行一些临时更改来编译它。
对不起,如果我使用任何 keywords/terminology 错误。如果您需要更多信息,请告诉我。

myjava.java

import java.util.*;
import java.io.*;
import java.nio.charset.StandardCharsets;

import org.apache.commons.lang.RandomStringUtils;


class myjava
{


    public static void main(String args[])
    {
        ArrayList<String> mlist = new ArrayList<String>();
        int x =10;
        while(x>0){
            x--;
            mlist.add(RandomStringUtils.random(6));
        }
        System.out.println("printing list in Java");
        System.out.println(mlist);

    }
}

当我尝试从终端编译它时,出现以下错误。

sabodda@sabodda-mac java-python % javac myjava.java
myjava.java:5: error: package org.apache.commons.lang does not exist
import org.apache.commons.lang.RandomStringUtils;
                              ^
myjava.java:37: error: cannot find symbol
            mlist.add(RandomStringUtils.random(6));
                      ^
  symbol:   variable RandomStringUtils
  location: class myjava
2 errors

如果您需要更多信息,请告诉我。谢谢。
我正在使用安装了 java jdk 的 mac 并设置了 jdk 的路径。

编辑:回答我自己的问题。 我已经下载了 jar(commons-lang3-3.12.0.jar)(它是从下载的二进制文件中提取的)并将其复制到源文件的目录中(myjava.java)。

编译:

 javac -cp .:commons-lang3-3.12.0.jar myjava.java

要执行:

java -cp .:commons-lang3-3.12.0.jar myjava

无法通过将二进制文件(即“.class”文件)作为依赖项作为 javac 命令行参数传递来显式添加它们。

javac 命令(以及其他 Java 工具链命令)使用 classpath 来查找依赖项 classes .这是一系列 class 路径条目,它们是目录或 JAR 或 ZIP 文件。因此,要添加单个依赖项 class,您需要将其放入 class 路径上的目录中,或者将其添加到 class 路径中的 JAR 或 ZIP 文件中,或将新条目(如上所述)添加到 classpath.

在您的情况下,您需要将 Apache Commons Lang 库的 JAR 文件添加到 class 路径。如果你这样编译:

 $ javac myjava.java

改成这样:

 $ javac -classpath .:<path/to/dependency.jar> myjava.java

有关详细信息,您应该阅读有关 class 路径如何工作以及如何指定的信息。参见

最后,请注意显式下载依赖项并将它们添加到您的构建和运行时 class路径是笨拙且过时的。 Maven 和 Gradle 等构建工具会为您处理。如果您打算在 Java 中实现任何重要的东西,您应该至少学会使用其中一种构建工具。