如何从终端运行 Java 程序

JavaJavaBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

本全面教程为开发者提供了直接从终端运行 Java 程序的基本知识。通过理解通过命令行界面编译和执行 Java 应用程序的基本步骤,程序员可以提升他们的技术技能并改进开发工作流程。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java(("Java")) -.-> java/FileandIOManagementGroup(["File and I/O Management"]) java/BasicSyntaxGroup -.-> java/identifier("Identifier") java/BasicSyntaxGroup -.-> java/output("Output") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/packages_api("Packages / API") java/FileandIOManagementGroup -.-> java/files("Files") java/FileandIOManagementGroup -.-> java/create_write_files("Create/Write Files") java/FileandIOManagementGroup -.-> java/io("IO") subgraph Lab Skills java/identifier -.-> lab-418038{{"如何从终端运行 Java 程序"}} java/output -.-> lab-418038{{"如何从终端运行 Java 程序"}} java/packages_api -.-> lab-418038{{"如何从终端运行 Java 程序"}} java/files -.-> lab-418038{{"如何从终端运行 Java 程序"}} java/create_write_files -.-> lab-418038{{"如何从终端运行 Java 程序"}} java/io -.-> lab-418038{{"如何从终端运行 Java 程序"}} end

Java 运行时基础

什么是 Java 运行时环境(JRE)?

Java 运行时环境(JRE)是一个至关重要的软件包,它使计算机能够运行 Java 应用程序。它提供了运行 Java 程序所需的运行时库、Java 虚拟机(JVM)和其他组件。

Java 运行时的关键组件

Java 虚拟机(JVM)

JVM 是 Java 运行时的核心组件,用于解释和执行 Java 字节码。它提供了:

  • 平台独立性
  • 内存管理
  • 安全特性
graph TD A[Java 源代码] --> B[Java 编译器] B --> C[字节码] C --> D[JVM] D --> E[机器码执行]

运行时库

Java 提供了一套全面的标准库,支持各种编程任务:

库类别 用途
java.lang 核心语言功能
java.util 实用类和数据结构
java.io 输入/输出操作
java.net 网络编程

在 Ubuntu 上安装 JRE

要在 Ubuntu 22.04 上安装 Java 运行时环境,请使用以下命令:

sudo apt update
sudo apt install default-jre

验证 Java 安装

安装后,验证 Java 版本:

java --version

运行时环境配置

JAVA_HOME 环境变量

设置 JAVA_HOME 环境变量有助于应用程序找到 Java 安装位置:

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin

性能和资源管理

JRE 动态管理系统资源,包括:

  • 内存分配
  • 垃圾回收
  • 线程管理

LabEx 学习提示

在 LabEx,我们建议通过实践练习来掌握 Java 运行时概念,以便扎实理解 Java 应用程序是如何执行的。

编译 Java 程序

理解 Java 编译过程

Java 编译将人类可读的源代码转换为机器可执行的字节码。此过程涉及将 .java 文件转换为可在 Java 虚拟机上运行的 .class 文件。

Java 编译器(javac)

Java 编译器 javac 是用于转换源代码的关键工具:

graph LR A[Java 源代码.java] --> B[Java 编译器 javac] B --> C[字节码.class]

基本编译步骤

1. 编写 Java 源代码

创建一个简单的 Java 程序 HelloWorld.java

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Welcome to LabEx Java Tutorial!");
    }
}

2. 编译程序

使用 javac 编译 Java 源文件:

javac HelloWorld.java

编译选项

选项 描述
-d 指定类文件的目标目录
-classpath 设置类路径
-source 指定 Java 源版本
-target 指定 Java 目标版本

高级编译技术

编译多个文件

javac *.java

指定类路径

javac -classpath./libs HelloWorld.java

常见编译错误

语法错误

  • 缺少分号
  • 方法声明不正确
  • 类型不匹配

编译工作流程

graph TD A[编写源代码] --> B{语法正确?} B -->|是| C[使用 javac 编译] B -->|否| D[修复错误] C --> E[生成.class 文件]

最佳实践

  • 使用有意义的变量和类名
  • 处理编译警告
  • 保持源代码组织有序
  • 使用一致的缩进

LabEx 建议

在 LabEx 的交互式 Java 编程环境中练习编译技术,以建立扎实的基础技能。

运行 Java 应用程序

Java 执行基础

Java 应用程序使用 java 命令来执行,该命令会启动 Java 虚拟机(JVM)并运行已编译的字节码。

运行简单的 Java 程序

基本执行命令

java ClassName

执行示例

## 首先编译程序
javac HelloWorld.java

## 运行已编译的程序
java HelloWorld

执行工作流程

graph TD A[已编译的.class 文件] --> B[Java 命令] B --> C[JVM 加载字节码] C --> D[字节码解释] D --> E[程序执行]

高级执行技术

类路径管理

场景 命令示例
本地目录 java -cp. MainClass
多个目录 java -cp./src:./libs MainClass
JAR 文件 java -cp application.jar MainClass

传递参数

java ClassName arg1 arg2 arg3

处理异常和调试

常见执行标志

标志 用途
-verbose 详细的运行时信息
-Xms 初始堆内存
-Xmx 最大堆内存
-ea 启用断言

性能优化

graph LR A[Java 执行] --> B{性能调优} B --> C[内存配置] B --> D[垃圾回收] B --> E[即时编译]

处理大型应用程序

运行 JAR 文件

java -jar application.jar

最佳实践

  • 验证 Java 安装
  • 使用适当的类路径
  • 处理运行时异常
  • 监控内存使用情况

LabEx 学习提示

在 LabEx 的交互式 Java 编程环境中探索各种执行场景,以掌握应用程序执行技术。

总结

对于开发者而言,掌握从终端执行 Java 程序是一项至关重要的技能。通过学习如何编译 Java 源文件、管理类路径以及使用命令行工具运行应用程序,程序员能够在不同环境中高效地开发、测试和部署 Java 应用程序。