0

我有一个 NetBeans java 项目。

该项目(src文件夹)由 6 个.java文件组成。该项目还使用外部库library.jar和来自 apache commons 的各种jar文件(日志、配置等。)

所有 java 文件(编译时)都由外部类使用。

Netbeans 生成一个构建 xml 文件。

<?xml version="1.0" encoding="UTF-8"?>
<project name="CityVisit" default="default" basedir=".">
    <description>Builds, tests, and runs the project CityVisit.</description>
    <import file="nbproject/build-impl.xml"/>

</project>

它引用nbproject/build-impl.xml但在该文件内部没有对library.jar的引用,也没有对其他 jar 的引用。

我的问题是,如果我尝试使用javac *.java进行编译,它不会编译并且只会打印一长串错误(可能是因为它找不到外部库)。

大多数错误如下:

 **can't find symbol <name> **

其中是包含在外部 jar 库之一中的类/对象的名称。

我应该怎么做?我的目标是能够在不使用 Eclipse、Netbeans 等 IDE 的情况下在另一台机器上编译我的代码。

据我了解,解决方案是制作一个构建文件并使用 ant 部署它,但实际上我应该怎么做?

提前感谢您的任何提示。问候

4

4 回答 4

1

使用 javac -cp ,您可以告诉编译器在哪里寻找外部 jars :

javac -cp /lib/123.jar:/lib/abc.jar yourMainClass.java

请注意我如何提供 jar 的路径,而不仅仅是名称(除非它们与您自己的代码位于同一文件夹中。

编译后,运行:

java -cp .:/lib/123.jar:/lib/abc.jar yourMainClass
于 2012-06-18T10:53:15.987 回答
1

首选的方法是使用 Maven 来定义您的依赖项并构建您的项目。更多信息可通过@http: //maven.apache.org/获得

于 2012-06-18T10:58:49.607 回答
0

通过创建新的 Java Maven 项目将您的项目转换为 Maven 项目,将文件复制粘贴到 Maven 源文件夹中,然后编译。

于 2018-12-26T22:17:45.947 回答
-1

请在库列表周围使用双引号 ( ") 和分号 ( )。;

  • 对于多个库,用分号分隔库:

    javac -cp "/lib/lib1.jar;/lib/lib2.jar" yourMainClass.java
    
  • 仅适用于一个库:

    javac -cp "/lib/lib1.jar" yourMainClass.java
    
于 2013-12-31T05:38:24.163 回答