从 jdk 9 开始,`java` 命令支持 `@-file` 语法,可直接读取外部文件中的类路径内容,实现动态、可维护的 classpath 加载。
在构建大型 Java 应用时,手动拼接冗长的 -cp 参数既易错又难以维护。Maven 等工具可通过插件(如 maven-dependency-plugin)自动生成 classpath 文件,例如:
mvn dependency:build-classpath -Dmdep.outputFile=classpath
该命令会生成一个纯文本文件 classpath,内容为冒号分隔(Linux/macOS)或分号分隔(Windows)的 JAR 路径列表,如:
./clojure-1.11.1.jar:./spec.alpha-0.3.218.jar:./core.specs.alpha-0.2.62.jar
随后,只需在 java 命令中使用 @classpath 即可自动展开该文件内容: