【问题标题】:How to add external library in classpath?如何在类路径中添加外部库?
【发布时间】:2016-02-23 09:21:44
【问题描述】:

我有一个包含以下 java 文件的文件夹:Main、TableManager、CustomFileWriter、CustomFileReader 以及外部库 commons-lang3-3.0.jar。我正在尝试使用此命令编译 Main.java

javac -cp commons-lang3-3.0.jar Main.java

但它说找不到符号

TableManager table = new TableManager()

我在 Main 类中创建了一个 TableManager 实例。没有外部库并仅使用 javac Main.java 进行编译可以正常工作。我怎样才能解决这个问题。我需要 StringUtils 的外部库。我没有使用框架。只是文本编辑器并运行到终端。

【问题讨论】:

  • 试试javac -cp .;commons-lang3-3.0.jar Main.java,对于windows/在linux上用一个完整的冒号替换分号
  • TableManager 类只是一个普通的 java 类。它读取和写入文件。
  • @Richard Jones 该命令有效,现在已编译,但在运行应用程序时出现此错误。线程“主”java.lang.NoClassDefFoundError 中的异常:org/apache/commons/lang3/StringUtils
  • @DanielBristol 运行使用java -cp .;commons-lang3-3.0.jar Main

标签: java


【解决方案1】:

要编译 Java 文件并包含 Jar 文件,请输入以下命令行:

  javac -cp jar-file Main.java

对于多个JAR 文件,用分号; 分隔jar-files,使用以下命令行:

  javac -cp jar-file1;jar-file2;jar-file3 Main.java

【讨论】:

    【解决方案2】:

    您需要路径,而不仅仅是 jar 名称,例如

    javac -cp c:\home\ann\public_html\classes\compute.jar engine\ComputeEngine.java

    您可以在documentation查看。

    【讨论】:

      【解决方案3】:

      要在同一个目录中使用 jar 编译一个类(在 Windows 上),请使用:

      javac -cp .;myjar.jar MyClass.java
      

      然后运行你可以使用的类:

      java -cp .;myjar.jar MyClass
      

      注意:在 linux 上,您需要将 ; 替换为 :

      【讨论】:

        【解决方案4】:

        “-cp”选项会覆盖您的类路径。因此,为了成功编译和运行您的 java-app,您必须添加 Main.class 文件的路径和外部库作为参数。这里的“。”是 Main.class 文件的相对路径,commons-lang3-3.0.jar 是外部库的相对路径。在 Windows 下,有时需要使用引号。

        编译:

        javac -cp ".;commons-lang3-3.0.jar" Main.java
        

        运行:

        java -cp ".;commons-lang3-3.0.jar" Main
        

        【讨论】:

          猜你喜欢
          • 2010-10-18
          • 1970-01-01
          • 1970-01-01
          • 2014-01-02
          • 1970-01-01
          • 2013-03-10
          • 2014-06-02
          • 1970-01-01
          • 2013-07-08
          相关资源
          最近更新 更多