java - 如何在没有jar文件的情况下在命令行中编译和运行Netbeans java项目?

标签 java netbeans command-line jar netbeans-8

我有一个具有目录结构的 java Netbeans 项目:

EMailQueue/
|-build/
|-classes/
|-mailqueue/
|-nbproject/
|-src/
 |-mailqueue/
|-dist/
 |-lib/
|-build.xml
|-maifest.mf

build/classes/mailqueue/ 目录包含从 src/mailqueue/ 目录和 dist/lib/中的所有 .java 文件编译的所有类 包含应用程序文件中导入的所有 .jar 文件(JDK 除外)。

我想知道如何在不使用 dist/ 目录中存在的 jar 文件的情况下运行此应用程序。

此外,我想知道如果我没有类文件,那么如何在 src/mailqueue/ 中编译 .java 文件以在 build/classes/mailqueue/中生成类文件 目录。

PS:请给出在终端中运行的确切命令以及可选的任何解释。

最佳答案

要编译 Netbeans 项目,您需要调用 Apache ant 工具并将构建脚本文件传递给它们,就像这样的 -f 参数

ant -f ../apppath/build.xml

这将通过构建 jar 文件来完成完整的项目。 如果您查看 build.xml 文件,您将看到它仅指向 ./nbproject/build-impl.xml 文件,其中实际定义了所有必需的操作。 一旦没有参数传递给 ant,它就会调用默认目标

<target depends="test,jar,javadoc" description="Build and test whole project." name="default"/>

您会看到此任务依赖于其他三个任务。最感兴趣的是“jar”目标。

看看这个目标 - 它取决于其他“编译”目标

直接调用该目标需要将此目标传递给ant工具

ant -f ../apppath/build.xml compile

这将编译项目但不会将它们打包到 jar

ant -f ../apppath/build.xml run

将编译项目并运行主类

希望这有帮助。

要使用纯 java 编译代码,您首先需要在包含所有 java 文件的文件夹中运行 java compler,即调用 javac。 javac -cp {所有java库文件和外部类文件的路径} *.java 一旦你编译完成,没有错误,以同样的方式运行 java 并传递它们 你想要运行的主类名称 java -cp {所有java库文件和外部类文件的路径} ClassName

关于java - 如何在没有jar文件的情况下在命令行中编译和运行Netbeans java项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29047604/

相关文章:

java - Netbeans JSF 应用程序中从未到达 javascript 文件中的断点?

java - 使用ant和自定义build.xml进行编译时出错,但在netbeans中工作

java - createTempFile 时系统找不到路径

java - Int 类型和 String 类型不兼容

java - 可能的方法来缩短非常大的数字?

java - netbeans 7.1 中的 "JVM creation failed"

linux - 使用 grep invert 函数比较两个 md5 哈希列表

linux - pidof 和 pgrep 之间的区别?

linux - 使用 awk 修改多列

java - 具有数组的IndexOutOfBounds