在 Java 中,最常用的解决方案是通过 命令行参数 和 系统属性 来传递动态参数,并在控制台打印。具体来说,可以通过两种常见方式传递参数:
- 命令行参数:通过
java -jar
启动时的参数,传递给main()
方法的String[] args
数组。 - 系统属性:使用
-D
选项传递参数,通过System.getProperty()
获取。
解决方案 1:通过命令行参数传递动态参数
启动 JAR
文件时,可以将参数作为命令行参数传递给 main
方法的 args
数组,并在程序中读取这些参数。
启动命令:
java -jar Main.jar 123 456 789
代码示例:
public class Main {
public static void main(String[] args) {
// 打印命令行参数
System.out.println("Number of arguments: " + args.length);
for (int i = 0; i < args.length; i++) {
System.out.println("Argument " + (i + 1) + ": " + args[i]);
}
}
}
输出示例:
Number of arguments: 3
Argument 1: 123
Argument 2: 456
Argument 3: 789
解决方案 2:通过 -D
系统属性传递动态参数
-D
参数是传递给 JVM 的系统属性,可以通过 System.getProperty()
方法获取。在运行时,可以动态指定这些参数。
启动命令:
java -Darg1=123 -Darg2=456 -Darg3=789 -jar Main.jar
代码示例:
public class Main {
public static void main(String[] args) {
// 获取系统属性
String arg1 = System.getProperty("arg1");
String arg2 = System.getProperty("arg2");
String arg3 = System.getProperty("arg3");
// 打印系统属性
System.out.println("arg1: " + arg1);
System.out.println("arg2: " + arg2);
System.out.println("arg3: " + arg3);
}
}
输出示例:
arg1: 123
arg2: 456
arg3: 789
总结:
- 命令行参数 (
args[]
) 是通过传递给main
方法的字符串数组,可以直接在代码中访问,适用于简单的输入。 - 系统属性 (
-D
) 允许以键值对的形式传递参数,并且可以使用System.getProperty()
来获取,适合传递配置项和环境变量。
你可以根据需要选择一种方式,或者两者结合使用。如果参数是动态配置或环境依赖,推荐使用系统属性。