首页 > 解决方案 > 编译包,包括通过命令行的 jars

问题描述

我正在使用 Netbeans IDE,但我试图通过 unix shell 编译和运行我的项目:

src/packagename/.. 下的类或多或少相互依赖,并且它们也在使用所述库。

我通过 Netbeans 添加了库(尽管 NetBeans 无法识别我在项目中使用的库中的类,所以我需要先提取 .jar 文件并将 NetBeans 引导到包含库中的 .class 文件的提取 jar 文件夹)。

当我在 NetBeans 中运行包含 main() 方法的类时,它工作得很好。但我正在尝试通过使用 javac 的 unix shell 来完成此操作。

我的问题:如何编译我的项目,包括 jars/foreign 库。我已经尝试了以下方法:

javac -classpath ".:jar1.jar:jar2.jar:" /path/to/project/src/packageName *.java

它仍然说找不到符号(引用库中的类)

抱歉,如果这个问题已经在其他地方得到了回答,但经过几个小时的研究,我无法让它发挥作用。我想我做错了什么可怕的事情?

标签: javaunixnetbeansjarjavac

解决方案


请阅读 Java 文档javac,这里是JDK14 javac

您可以尝试许多其他选项,特别是如果您想定义不同的文件编码或 JRE 源/目标。

如果使用当前目录的相对路径,您可以简化命令,cd首先到您的项目目录。这是一个简单的调用:

javac -d build/my.classes -sourcepath src -cp lib/abc.jar:lib/xyz.jar  src/packageName/*.java

您可能需要mkdir build或其他一些目录来存储临时文件。java在此之后,您可以尝试在文件上使用直接命令运行您的应用程序。


推荐阅读