我有一个NetBeans java项目。
此项目( src 文件夹)由6个 .java 文件组成。 该项目还使用来自apache commons的外部库 library.jar 和variouus 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 进行部署,但实际上该怎么做?
提前感谢您的任何提示。 此致
答案 0 :(得分:1)
使用javac -cp,您可以告诉编译器在哪里查找外部jar:
javac -cp /lib/123.jar:/lib/abc.jar yourMainClass.java
请注意我是如何给出jar的路径,而不仅仅是名称(除非它们与您自己的代码位于同一个文件夹中。
编译完成后,运行:
java -cp .:/lib/123.jar:/lib/abc.jar yourMainClass
答案 1 :(得分:1)
首选方法是使用Maven定义依赖项并构建项目。有关更多信息,请访问http://maven.apache.org/
答案 2 :(得分:0)
通过创建新的Java Maven项目将您的项目复制到Maven项目中,将文件复制粘贴到maven源文件夹中,然后进行编译。
答案 3 :(得分:-1)
请使用双引号("
)&amp;在文库列表周围用分号(;
)。
对于多个库,使用分号分隔库:
javac -cp "/lib/lib1.jar;/lib/lib2.jar" yourMainClass.java
仅限一个图书馆:
javac -cp "/lib/lib1.jar" yourMainClass.java