我有一个具有目录结构的 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 参数
block 引用>ant -f ../apppath/build.xml
这将通过构建 jar 文件来完成完整的项目。 如果您查看 build.xml 文件,您将看到它仅指向 ./nbproject/build-impl.xml 文件,其中实际定义了所有必需的操作。 一旦没有参数传递给 ant,它就会调用默认目标
block 引用><target depends="test,jar,javadoc" description="Build and test whole project." name="default"/>
您会看到此任务依赖于其他三个任务。最感兴趣的是“jar”目标。
看看这个目标 - 它取决于其他“编译”目标
直接调用该目标需要将此目标传递给ant工具
block 引用>ant -f ../apppath/build.xml compile
这将编译项目但不会将它们打包到 jar
block 引用>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/