Java如何传递命令行参数
- 主机动态
- 2025-06-11
- 5
在Java中命令行传参通过main方法的String[] args参数接收,运行程序时在类名后添加参数,如 java MyClass arg1 arg2,参数以空格分隔,程序内部通过args数组索引访问,例如args[0]获取第一个参数。
Java命令行传参详解
在Java开发中,通过命令行传递参数是程序与用户交互的基础方式,这种技术允许在启动程序时动态配置参数,无需修改代码即可改变程序行为。
核心原理:main方法参数
Java程序的入口main方法自带String[] args参数,专门用于接收命令行输入:

参数传递规则:
- 参数按空格分隔,顺序存入args数组
- 参数索引从0开始:args[0]为第一个参数
- 带空格的参数需用双引号包裹
完整操作步骤
编写Java程序
public class CommandLineDemo { public static void main(String[] args) { System.out.println("共接收参数: " + args.length + "个"); for(int i=0; i<args.length; i++){ System.out.println("参数" + (i+1) + ": " + args[i]); } } }
编译程序
在终端执行(需提前配置JDK环境变量):

javac CommandLineDemo.java
运行程序并传参
在生成的.class文件目录下执行:
java CommandLineDemo Apple "Banana Pie" 100
输出结果:

共接收参数: 3个 参数1: Apple 参数2: Banana Pie 参数3: 100
特殊场景处理技巧
| 场景 | 写法示例 | 说明 |
|---|---|---|
| 带空格参数 | "New York" | 双引号保证整体作为单个参数 |
| 特殊字符 | price=100$ | Linux/Mac需转义$符号 |
| 空参数 | java App "" | args[0]会接收空字符串 |
常见问题排查
- 参数未生效:检查是否在类名之后输入参数
- 数组越界:访问参数前务必检查args.length
- 数字转换异常:用Integer.parseInt(args[0])时捕获NumberFormatException
实际应用场景
- 配置文件路径传递:java App -config /path/to/settings.cfg
- 批量处理模式选择:java ImageProcessor --mode=resize
- 开发测试中快速切换参数
专业建议:生产环境中推荐使用Apache Commons CLI或Spring Boot等框架处理复杂参数,支持更规范的选项解析和验证。
命令行传参是Java基础但强大的特性:
- 适用于简单脚本和原型开发
- 参数通过String[] args原生支持
- 注意空格和特殊字符的处理
- 复杂场景建议升级到专业参数解析库