今天本来是在学习 Builder 模式,联想到之前使用过的 lombok 工具包,其中有一个 @Builder 注解,于是就想看看 lombok 是怎么实现 Builder 模式的。尴尬的是,由于一直以来都依赖 IDE,以至于忘了怎么在命令行编译和执行 Java 程序。最后去看了 javac、java 命令的文档才把这个问题弄明白,不由得发出『久在樊笼里,复得返自然』的感慨。
项目结构
假设我们的项目的目录结构如下
- bin 开始是一个空目录,用来保存编译生成的 .class 文件。
- lib 包含项目引用到的第三方 jar 包。
- src 项目源码。
编译
大家知道,想要运行一个 Java 程序,首先需要将 .java 源文件编译成 JVM 能识别的 .class 文件。这里我们可以使用由 JDK 提供的 javac
命令。
直接在命令行敲出 javac
或 javac -help
,系统就会给出相关的提示。
项目代码结构
在命令行执行如下代码即可编译该项目
1 | javac -d bin -cp lib/lombok.jar src/com/user/*.java src/com/application/Main.java |
-d
指定编译后的 .class 文件所存放的目录。这里指定为 bin 目录。-cp
指定编译时用户的 classpath,会覆盖用户之前在环境变量 CLASSPATH 中配置的路径。如果既没有指定 classpath,也没有配置 CLASSPATH,则默认为当前目录。这里指定为存放 jar 包的 lib 目录。src/com/user/*.java src/com/application/Main.java
指定待编译的源码目录。
最终编译生成如下的 .class 文件结果如下。
运行
运行 Java 程序需要用到 java 命令。而且指定的类或 jar 包需要包含如下所示的 Main 方法。
1 | public static void main(String args[]) {...} |
在命令行执行如下代码即可运行该项目
1 | java -cp bin com.application.Main |
-cp bin
指定存放 .class 文件的 bin 目录为用户的 classpath。com.application.Main
指定类的全称。注意不要带 .java 后缀。
运行结果如下