在上一课中,我们编译了一个小程序并得到了MySolution.class文件,其中包含我们的程序作为字节码。源代码是这样的:


class MySolution {
   public static void main(String[] args) {
      System.out.println("Hi, command line!");
   }
}

现在让我们将这个.class文件传递​​给 JVM 来执行它。为此,我们将使用java命令,指定包含main方法的类的名称:


D:\temp>java MySolution

我们看到“嗨,命令行!” 在控制台上。

请注意,此处您需要指定的不是文件名 ( MySolution.class ),而是类名 ( MySolution )。

让我们尝试从控制台运行另一个程序。这次我们将使用args数组,main方法的输入参数:


public class MyArgs {
    public static void main(String[] args) {
        if (args.length == 3) {
            System.out.println(args[0].toLowerCase());
            System.out.println(args[1].toUpperCase());
            System.out.println(args[2].length());
        } else {
            System.out.println("Three parameters are expected.");
        }
    }
}

让我们编译...


D:\temp>javac MyArgs.java

并运行:


D:\temp>java MyArgs

输出如下:需要三个参数

在最近的命令中,在类名之后,您可以指定将在args字符串数组中结束的参数。例如,如果您传递以下参数:


D:\temp>java MyArgs One Two Three

然后 args 数组将是 ["One", "Two", "Three"]

屏幕输出将是:

一二

_

如果您希望参数包含空格,则需要将其用双引号引起来:


D:\temp>java MyArgs "One Two" Three "Four Five Six"

输出:


二三
13

如果您的程序由单个文件组成,则有一种简单的方法可以让您无需显式编译即可运行它。只需告诉java实用程序您的文件名(包括.java扩展名)和任何参数:


D:\temp>java MyArgs.java param1 param2

此功能是在 Java 11 中添加的,目的是让刚开始学习编程语言的人的生活更轻松。

如需更多详细信息:
java 命令具有内置帮助。要显示它,请在命令行上运行以下命令:
  • java --help