Java中用户向系统传递参数的三种基本方式实例分享


在Java中,用户向系统(或更准确地说,向Java程序)传递参数通常发生在程序启动时,通过命令行参数的形式。以下是三种基本方式的实例分享:

### 1. 使用`main`方法的`String[] args`参数

这是最直接的方式,Java程序的入口点`main`方法接受一个字符串数组`args`,该数组包含了用户通过命令行传递给程序的参数。


public class CommandLineArgs {
    public static void main(String[] args) {
        if (args.length > 0) {
            for (String arg : args) {
                System.out.println("Received argument: " + arg);
            }
        } else {
            System.out.println("No arguments received.");
        }
    }
}

### 2. 使用环境变量

虽然环境变量不是直接作为命令行参数传递给Java程序的,但它们可以在程序内部被读取和使用,作为配置或参数的一种方式。


public class EnvironmentVariables {
    public static void main(String[] args) {
        String myVar = System.getenv("MY_ENV_VAR");
        if (myVar != null) {
            System.out.println("Environment variable MY_ENV_VAR: " + myVar);
        } else {
            System.out.println("Environment variable MY_ENV_VAR is not set.");
        }
    }
}

注意:在运行此程序之前,您需要在操作系统的环境变量中设置`MY_ENV_VAR`。

### 3. 使用配置文件

另一种传递参数的方式是通过配置文件。程序在启动时读取配置文件中的设置或参数。

这里不直接展示完整的文件读写代码,但概念上,您可以创建一个简单的配置文件(如`config.properties`),然后在Java程序中读取这个文件。

**config.properties**:

param1=value1 param2=value2

在Java中读取配置文件通常涉及使用`Properties`类或其他文件I/O方法。


import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;

public class ConfigFileExample {
    public static void main(String[] args) {
        Properties prop = new Properties();
        try (FileInputStream in = new FileInputStream("config.properties")) {
            prop.load(in);
            System.out.println("param1 = " + prop.getProperty("param1"));
            System.out.println("param2 = " + prop.getProperty("param2"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

这三种方式各有用途和适用场景。直接通过`main`方法的`args`参数传递是处理命令行参数最直接的方式;环境变量通常用于全局配置,如系统路径或用户认证信息;而配置文件则提供了更灵活的配置方式,允许在不修改代码的情况下调整程序行为。