Skip to content

Java 操作与命令 ​

启动程序与检查运行环境 ​

java · Java 程序启动器 ​

更多信息:https://docs.oracle.com/en/java/javase/25/docs/specs/man/java.html。

  • 通过提供类名称运行一个含有 main 函数的 java .class 程序:
bash
java {{类名称}}
  • 运行 Java 程序,并使用附加的第三方或用户定义类:

下面使用 POSIX 的 : 类路径分隔符。Windows 使用 ;,并把整个类路径放入引号,例如 java -classpath "classes;lib/helper.jar;." com.example.Main;路径含空格时同样需要引号。

bash
java -classpath {{路径/到/类1}}:{{路径/到/类2}}:. {{类名称}}
  • 运行一个 .jar 程序:
bash
java -jar {{文件名.jar}}
  • 使用 JDK 9+ 运行一个 .jar 程序,并在本机端口 5005 等待调试器;suspend=y 会暂停应用直到调试器连接:
bash
java -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=127.0.0.1:5005 -jar {{文件名.jar}}
  • 显示帮助:
bash
java -help
  • 显示 JDK、JRE 和 HotSpot 的版本:
bash
java -version

java launch · 使用 JDK 启动 Java 程序 ​

  • 运行已编译主类:
bash
java -cp {{classes}} {{com.example.Main}}
  • 运行可执行 JAR:
bash
java -jar {{app.jar}} {{argument}}
  • 直接运行源文件(JDK 11+;当前 JDK 必须支持文件所用语法):
bash
java {{Main.java}}
  • 设置系统属性后启动:
bash
java -D{{app.environment}}={{development}} -jar {{app.jar}}

java runtime · 检查运行环境并设置 JVM 内存与日志 ​

  • 查看版本与运行环境设置:
bash
java -XshowSettings:properties -version
  • 设置初始与最大堆内存:
bash
java -Xms{{256m}} -Xmx{{1g}} -jar {{app.jar}}
  • 将垃圾回收日志写入文件(JDK 9+ 统一日志):
bash
java -Xlog:gc:file={{gc.log}} -jar {{app.jar}}
  • 列出可用模块(JDK 9+):
bash
java --list-modules

构建与打包项目 ​

gradle build workflow · 使用项目 Wrapper;Windows 使用 gradlew.bat,任务取决于已应用插件 ​

  • 列出可用任务:
bash
./gradlew tasks --all
  • 构建并执行检查:
bash
./gradlew build
  • 仅预览任务执行顺序:
bash
./gradlew build --dry-run
  • 删除输出后重新构建:
bash
./gradlew clean build

mvn · Apache Maven:构建和管理基于 Java 的项目 ​

更多信息:https://manned.org/mvn。

  • 编译项目:
bash
mvn compile
  • 将编译后的代码打包成可分发格式,比如 jar:
bash
mvn package
  • 编译和打包,跳过单元测试:
bash
mvn package {{[-D|--define]}} skipTests
  • 在本地 maven 存储库中安装构建的包(这也会调用 compile 和 package 命令):
bash
mvn install
  • 从目标目录中删除构建工件,通常用来清理之前的编译结果:
bash
mvn clean
  • 执行清理操作,然后进行编译打包:
bash
mvn clean package
  • 清理然后使用给定的构建配置文件打包代码:
bash
mvn clean {{[-P|--activate-profiles]}} {{构建配置文件}} package
  • 使用 main 方法运行一个类:
bash
mvn exec:java {{[-D|--define]}} exec.mainClass="{{com.example.Main}}" {{[-D|--define]}} exec.args="{{参数1 参数2 ...}}"

mvn build · 从包含 pom.xml 的项目目录执行 Maven 生命周期 ​

  • 编译主源码:

参见 mvn。

  • 执行测试并打包:

参见 mvn。

  • 执行集成校验阶段:
bash
mvn verify
  • 删除构建输出并安装到本地仓库:
bash
mvn clean install

查看与准备依赖 ​

gradle dependency workflow · 检查项目依赖解析;Windows 使用 gradlew.bat ​

  • 查看运行时依赖树:
bash
./gradlew dependencies --configuration {{runtimeClasspath}}
  • 定位版本选择原因:
bash
./gradlew dependencyInsight --dependency {{slf4j-api}} --configuration {{runtimeClasspath}}
  • 查看子项目依赖:
bash
./gradlew :{{app}}:dependencies --configuration {{runtimeClasspath}}
  • 刷新依赖缓存后构建:
bash
./gradlew build --refresh-dependencies

mvn dependency workflow · 查看 Maven 依赖并准备离线构建 ​

  • 显示依赖树:
bash
mvn dependency:tree
  • 只显示指定依赖:
bash
mvn dependency:tree -Dincludes={{org.slf4j:slf4j-api}}
  • 下载项目与插件依赖到本地仓库:
bash
mvn dependency:go-offline
  • 将依赖类路径写入文件:
bash
mvn dependency:build-classpath -Dmdep.outputFile={{classpath.txt}}

筛选与运行测试 ​

gradle test workflow · 在 JVM 项目中筛选测试;Windows 使用 gradlew.bat ​

  • 运行测试任务:
bash
./gradlew test
  • 运行指定类:
bash
./gradlew test --tests "{{com.example.OrderTest}}"
  • 运行指定方法:
bash
./gradlew test --tests "{{com.example.OrderTest.createsOrder}}"
  • 强制重新运行测试与依赖任务:
bash
./gradlew test --rerun-tasks

mvn test workflow · 使用 Surefire 选择单元测试;测试类必须已配置 ​

使用 Surefire 选择单元测试;测试类必须已配置。

  • 运行所有单元测试:
bash
mvn test
  • 运行一个测试类:
bash
mvn -Dtest={{OrderServiceTest}} test
  • 运行某个测试方法:
bash
mvn "-Dtest={{OrderServiceTest}}#{{createsOrder}}" test
  • 运行匹配名称的测试:
bash
mvn "-Dtest={{Order*Test}}" test

示例整理自 tldr-pages,作者为 tldr-pages team and contributors,遵循 CC BY 4.0。

继续阅读