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 方法的本质和作用!

相关推荐
hrhcode3 小时前
【java工程师快速上手go】二.Go进阶特性
java·golang·go
小碗羊肉5 小时前
【从零开始学Java | 第三十一篇下】Stream流
java·开发语言
❀͜͡傀儡师5 小时前
Spring AI Alibaba vs. AgentScope:两个阿里AI框架,如何选择?
java·人工智能·spring
aq55356005 小时前
Laravel10.x重磅升级,新特性一览
android·java·开发语言
一 乐6 小时前
酒店预订|基于springboot + vue酒店预订系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·酒店预订系统
Moe4886 小时前
Spring AI Advisors:从链式增强到递归顾问
java·后端
敖正炀6 小时前
ReentrantReadWriteLock、ReentrantLock、synchronized 对比
java
cike_y6 小时前
Java反序列化漏洞-Shiro721流程分析
java·反序列化·shiro框架
极创信息6 小时前
信创系统认证服务怎么做?从适配到验收全流程指南
java·大数据·运维·tomcat·健康医疗
格鸰爱童话7 小时前
向AI学习项目技能(六)
java·人工智能·spring boot·python·学习