JDK 工具学习系列(一):javac、java 命令与 main 方法详解

JDK 工具学习系列(一):javac、java 命令与 main 方法详解

本文将带你快速了解 Java 程序的编译与运行流程,掌握 javacjava 命令的基本用法,并深入理解 Java 程序的入口------main 方法。


0. 官方命令解释

  • java - launch a Java application
  • javac - read Java class and interface definitions and compile them into bytecode and class files

1. 编写第一个 Java 程序

创建一个名为 HelloWorld.java 的文件,内容如下:

java 复制代码
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, JDK!");
    }
}

2. 使用 javac 编译 Java 源文件

javac 是 Java 的编译器,用于将 .java 源文件编译为 .class 字节码文件。

bash 复制代码
javac HelloWorld.java

执行后,会在当前目录下生成一个 HelloWorld.class 文件。


3. 使用 java 运行 Java 程序

java 命令用于运行编译后的 Java 字节码文件。

bash 复制代码
java HelloWorld

输出结果:

复制代码
Hello, JDK!

注意:运行时只写类名,不加 .class 后缀。


4. main 方法详解

标准写法

java 复制代码
public static void main(String[] args) {
    // 程序入口
}

各部分含义

  • public:公开的,JVM 需要从外部调用它
  • static:静态的,不需要创建对象就能调用
  • void:没有返回值
  • main:方法名,Java 程序的入口
  • String[] args:字符串数组参数,用于接收命令行参数

String[] args 的作用

args 是一个字符串数组,代表命令行参数。例如:

java 复制代码
public class Demo {
    public static void main(String[] args) {
        System.out.println("参数个数: " + args.length);
        for (String arg : args) {
            System.out.println(arg);
        }
    }
}

命令行运行:

bash 复制代码
java Demo hello world 123

输出:

makefile 复制代码
参数个数: 3
hello
world
123

5. JDK 11+ 的新特性

从 JDK 11 开始,可以直接用 java 命令运行单个 Java 源文件,无需手动编译:

bash 复制代码
java HelloWorld.java

适合简单程序和脚本场景。对于多文件或复杂项目,仍推荐使用 javac 进行编译。


6. 总结

  • javac 编译 .java 文件,生成 .class 字节码
  • java 运行 .class 文件
  • main 方法是 Java 程序的入口,String[] args 用于接收命令行参数
  • JDK 11+ 支持直接运行单文件 Java 程序

希望本文能帮助你快速入门 Java 的编译与运行流程,理解 main 方法的本质和作用!

相关推荐
lkbhua莱克瓦248 小时前
Java基础——常用API2
java·笔记·github·学习方法
摇滚侠8 小时前
Spring Boot3零基础教程,Lambda 表达式与函数式接口,笔记95
java·spring boot·笔记
好学且牛逼的马8 小时前
【JavaWeb|day19 Web后端进阶 SpringAOP、SpringBoot原理、自定义Starter、Maven高级】
java·spring boot·rpc
码界奇点8 小时前
Java 开发日记MySQL 与 Redis 双写一致性策略挑战与实战解析
java·redis·sql·mysql·java-ee
GHZero8 小时前
Java 之解读String源码(九)
java·开发语言
Swift社区8 小时前
Lombok 不生效 —— 从排查到可运行 Demo(含实战解析)
java·开发语言·安全
南清的coding日记8 小时前
Java 程序员的 Vue 指南 - Vue 万字速览(01)
java·开发语言·前端·javascript·vue.js·css3·html5
@大迁世界9 小时前
我用 Rust 重写了一个 Java 微服务,然后丢了工作
java·开发语言·后端·微服务·rust
自在极意功。9 小时前
Java static关键字深度解析
java·开发语言·面向对象·static