跳转至

如何在命令行中运行 Java 程序

简介

在开发 Java 程序时,了解如何在命令行(CMD)中运行程序是一项重要的技能。这不仅能帮助你更好地理解 Java 程序的执行机制,还在某些情况下比使用集成开发环境(IDE)更为便捷。本文将详细介绍在 CMD 中运行 Java 程序的基础概念、使用方法、常见实践以及最佳实践。

目录

  1. 基础概念
    • Java 编译与运行机制
    • 命令行工具
  2. 使用方法
    • 设置环境变量
    • 编写 Java 代码
    • 编译 Java 代码
    • 运行 Java 程序
  3. 常见实践
    • 处理多个类
    • 传递命令行参数
  4. 最佳实践
    • 组织项目结构
    • 使用脚本简化操作
  5. 小结
  6. 参考资料

基础概念

Java 编译与运行机制

Java 程序的运行需要经过两个主要步骤:编译和运行。编译阶段,Java 源文件(.java)通过 Java 编译器(javac)被翻译成字节码文件(.class)。字节码是一种与平台无关的中间表示形式,可以在任何安装了 Java 虚拟机(JVM)的系统上运行。运行阶段,JVM 加载字节码文件并执行其中的指令。

命令行工具

在 Windows 系统中,命令提示符(CMD)是我们与操作系统进行交互的工具。要在 CMD 中运行 Java 程序,我们需要使用 JDK(Java Development Kit)提供的两个主要命令:javacjavajavac 用于编译 Java 源文件,java 用于运行编译后的字节码文件。

使用方法

设置环境变量

在开始编译和运行 Java 程序之前,需要设置 PATH 环境变量,以便系统能够找到 JDK 提供的命令。 1. 找到 JDK 的安装目录,通常类似于 C:\Program Files\Java\jdk-11.0.11。 2. 打开系统属性,点击“高级”选项卡,然后点击“环境变量”按钮。 3. 在“系统变量”中找到“Path”变量,点击“编辑”。 4. 点击“新建”,添加 JDK 的 bin 目录路径,例如 C:\Program Files\Java\jdk-11.0.11\bin。 5. 依次点击“确定”保存设置。

编写 Java 代码

使用文本编辑器(如 Notepad++、Sublime Text 等)编写一个简单的 Java 程序。例如,创建一个名为 HelloWorld.java 的文件,内容如下:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

编译 Java 代码

打开命令提示符,导航到包含 HelloWorld.java 文件的目录。例如,如果文件保存在 C:\Users\YourUsername\Documents\JavaProjects 目录下,可以使用以下命令:

cd C:\Users\YourUsername\Documents\JavaProjects

然后使用 javac 命令编译 Java 源文件:

javac HelloWorld.java

如果代码没有错误,当前目录下会生成一个 HelloWorld.class 文件。

运行 Java 程序

使用 java 命令运行编译后的字节码文件:

java HelloWorld

你将在命令行中看到输出:Hello, World!

常见实践

处理多个类

在实际项目中,一个 Java 程序可能包含多个类。假设我们有两个类 MainClass.javaHelperClass.java

// MainClass.java
public class MainClass {
    public static void main(String[] args) {
        HelperClass helper = new HelperClass();
        helper.sayHello();
    }
}

// HelperClass.java
class HelperClass {
    public void sayHello() {
        System.out.println("Hello from HelperClass!");
    }
}

编译时,需要编译所有的源文件:

javac MainClass.java HelperClass.java

运行时,只需要指定主类:

java MainClass

传递命令行参数

Java 程序可以接受命令行参数。在 main 方法中,args 数组用于存储这些参数。

public class CommandLineArgs {
    public static void main(String[] args) {
        if (args.length > 0) {
            System.out.println("The command line arguments are:");
            for (String arg : args) {
                System.out.println(arg);
            }
        } else {
            System.out.println("No command line arguments were provided.");
        }
    }
}

编译并运行程序时传递参数:

javac CommandLineArgs.java
java CommandLineArgs arg1 arg2 arg3

最佳实践

组织项目结构

为了便于管理和维护,建议按照一定的结构组织 Java 项目。例如:

MyProject/
├── src/
│   ├── com/
│   │   ├── mycompany/
│   │   │   ├── MainClass.java
│   │   │   └── HelperClass.java
│   └──...
├── bin/
└──...

编译时,可以指定输出目录:

javac -d bin src/com/mycompany/*.java

运行时,需要切换到 bin 目录,并使用全限定类名:

cd bin
java com.mycompany.MainClass

使用脚本简化操作

可以编写批处理脚本(.bat)来简化编译和运行过程。例如,创建一个 build_and_run.bat 文件:

@echo off
javac -d bin src/com/mycompany/*.java
cd bin
java com.mycompany.MainClass
cd..

双击运行该脚本即可完成编译和运行操作。

小结

通过本文,我们详细介绍了在命令行中运行 Java 程序的相关知识,包括基础概念、使用方法、常见实践以及最佳实践。掌握这些技能将有助于你更好地理解 Java 程序的运行原理,并在开发过程中更加灵活地进行操作。

参考资料