跳转至

从命令提示符执行 Java 程序

简介

在 Java 开发过程中,了解如何从命令提示符(Command Prompt)执行 Java 程序是一项基础且重要的技能。这不仅有助于我们理解 Java 程序的运行机制,还能在开发、调试以及部署等多个环节提供便利。本文将详细介绍从命令提示符执行 Java 程序的相关知识,包括基础概念、使用方法、常见实践和最佳实践。

目录

  1. 基础概念
  2. 使用方法
    • 编写 Java 代码
    • 编译 Java 代码
    • 执行 Java 程序
  3. 常见实践
    • 处理多个类
    • 使用包(Packages)
  4. 最佳实践
    • 设置环境变量
    • 编写批处理文件(Windows)或 Shell 脚本(Linux / macOS)
  5. 小结
  6. 参考资料

基础概念

Java 程序的执行过程涉及两个主要步骤:编译(Compilation)和运行(Execution)。

编译

Java 源文件(扩展名为.java)包含我们编写的 Java 代码。编译器(例如 javac)会将这些源文件翻译成字节码(Bytecode),字节码文件的扩展名为.class。字节码是一种与平台无关的中间表示形式,这意味着 Java 程序可以在任何安装了 Java 虚拟机(JVM)的操作系统上运行。

运行

Java 虚拟机(JVM)负责加载字节码文件并执行其中的指令。在命令提示符中,我们使用 java 命令来启动 JVM 并运行 Java 程序。

使用方法

编写 Java 代码

首先,我们需要编写一个简单的 Java 程序。使用文本编辑器(如 Notepad、Sublime Text 等)创建一个名为 HelloWorld.java 的文件,并输入以下代码:

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

在这段代码中,我们定义了一个名为 HelloWorld 的公共类,其中包含一个 main 方法。main 方法是 Java 程序的入口点,程序从这里开始执行。

编译 Java 代码

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

cd C:\JavaProjects\HelloWorld

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

javac HelloWorld.java

如果代码没有语法错误,命令执行后不会有任何输出,但在当前目录下会生成一个名为 HelloWorld.class 的字节码文件。

执行 Java 程序

编译成功后,使用 java 命令执行程序:

java HelloWorld

此时,命令提示符将输出:

Hello, World!

请注意,在执行 java 命令时,不要带上 .class 扩展名。

常见实践

处理多个类

在实际开发中,一个 Java 项目通常包含多个类。例如,我们有两个类 MainClass.javaHelperClass.java,代码如下:

// MainClass.java
public class MainClass {
    public static void main(String[] args) {
        HelperClass helper = new HelperClass();
        helper.printMessage();
    }
}
// HelperClass.java
class HelperClass {
    public void printMessage() {
        System.out.println("This is a message from HelperClass.");
    }
}

要编译和运行这个项目,首先编译所有的源文件:

javac MainClass.java HelperClass.java

然后执行 MainClass

java MainClass

使用包(Packages)

包是 Java 中组织类的一种方式。假设我们有一个包 com.example,其中包含 MainApp.java 类:

// MainApp.java
package com.example;

public class MainApp {
    public static void main(String[] args) {
        System.out.println("This is a program in a package.");
    }
}

首先,确保目录结构与包名一致。例如,MainApp.java 文件应该放在 com\example 目录下(在 Windows 系统中)。然后在包含 com 目录的父目录下进行编译:

javac com\example\MainApp.java

执行时,需要指定完整的类名(包括包名):

java com.example.MainApp

最佳实践

设置环境变量

为了更方便地使用 javacjava 命令,我们可以设置系统环境变量。在 Windows 系统中: 1. 右键点击“此电脑”,选择“属性”。 2. 点击“高级系统设置”。 3. 在“系统属性”窗口中,点击“环境变量”。 4. 在“系统变量”中找到“Path”变量,点击“编辑”。 5. 添加 Java 安装目录下的 bin 文件夹路径(例如 C:\Program Files\Java\jdk-11.0.10\bin)。

在 Linux 和 macOS 系统中,可以编辑 .bashrc.zshrc 文件,添加以下内容:

export PATH="/path/to/java/bin:$PATH"

编写批处理文件(Windows)或 Shell 脚本(Linux / macOS)

为了简化编译和运行过程,我们可以编写批处理文件(Windows)或 Shell 脚本(Linux / macOS)。

批处理文件(Windows)

在包含 Java 源文件的目录下创建一个名为 build_and_run.bat 的文件,内容如下:

@echo off
javac *.java
if %errorlevel% equ 0 (
    java MainClass
)
pause

双击运行这个批处理文件,它会编译所有的 Java 源文件,并在编译成功后运行 MainClass

Shell 脚本(Linux / macOS)

在包含 Java 源文件的目录下创建一个名为 build_and_run.sh 的文件,内容如下:

#!/bin/bash
javac *.java
if [ $? -eq 0 ]; then
    java MainClass
fi

设置脚本的可执行权限:

chmod +x build_and_run.sh

然后运行脚本:

./build_and_run.sh

小结

通过本文,我们详细了解了从命令提示符执行 Java 程序的基础概念、使用方法、常见实践和最佳实践。掌握这些知识对于 Java 开发者来说至关重要,它不仅能帮助我们更好地理解 Java 程序的运行机制,还能提高开发效率。希望读者通过实践,熟练掌握这一技能,并在 Java 开发中灵活运用。

参考资料