当前位置:首页 > 后端开发 > 正文

如何在命令行编译Java

使用javac命令编译Java源文件, javac HelloWorld.java,成功编译后生成.class字节码文件,再通过 java HelloWorld运行程序,注意文件名需与类名一致。

准备工作:安装JDK并配置环境变量

  1. 下载JDK

    访问Oracle官网OpenJDK,下载与操作系统匹配的JDK版本(推荐JDK 11+)。

  2. 配置环境变量

    • Windows
      1. 安装JDK后,打开控制面板 > 系统 > 高级系统设置 > 环境变量。
      2. 在系统变量中新建:
        • 变量名:JAVA_HOME
        • 变量值:JDK安装路径(如C:Program FilesJavajdk-21)
      3. 编辑Path变量,新增两项:
        • %JAVA_HOME%bin
        • %JAVA_HOME%jrebin

    • macOS/Linux

      编辑~/.bashrc或~/.zshrc文件,添加: export JAVA_HOME=/usr/lib/jvm/jdk-21 # 替换为实际路径 export PATH=$JAVA_HOME/bin:$PATH

      执行source ~/.bashrc使配置生效。

  3. 验证安装

    打开命令行,输入以下命令:

    java -version javac -version

    若显示版本号(如java 21.0.1),则配置成功。


编译并运行Java程序

示例1:基础单文件程序

  1. 编写Java代码

    创建文件HelloWorld.java如下:

    public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, Command Line!"); } }
  2. 编译程序

    打开命令行,进入文件所在目录,执行:

    javac HelloWorld.java
    • 成功后会生成HelloWorld.class字节码文件。
    • 关键选项
      • -d <目录>:指定输出目录(如javac -d ./out HelloWorld.java)。
      • -encoding UTF-8:指定源码编码(避免中文乱码)。
  3. 运行程序

    java HelloWorld

    输出结果:Hello, Command Line!


示例2:带包名的程序

  1. 编写带包结构的代码

    创建文件com/example/Main.java如下:

    package com.example; public class Main { public static void main(String[] args) { System.out.println("Running with package!"); } }
  2. 编译与运行

    • 编译: javac com/example/Main.java

      生成com/example/Main.class。

    • 运行(需从根目录执行): java com.example.Main


示例3:编译多个文件

假设有两个文件:

  • Utils.java(工具类)
  • App.java(主类,依赖Utils)

# 编译所有.java文件 javac *.java # 或指定文件 javac Utils.java App.java


常见问题解决

  1. javac 未找到或不是内部命令

    • 原因:环境变量配置错误。
    • 解决:重新检查JAVA_HOME和Path配置。
  2. 找不到主类(Error: Could not find or load main class)

    • 原因:
      • 类名拼写错误。
      • 未从包结构的根目录运行。
      • .class文件不在当前目录。
    • 解决:
      • 使用-classpath指定路径:java -cp ./out com.example.Main。
  3. 中文乱码

    • 编译时指定编码: javac -encoding UTF-8 HelloWorld.java


高级技巧

  1. 使用-classpath管理依赖

    编译时指定外部JAR:

    javac -cp libs/gson.jar MyApp.java
  2. 生成文档(Javadoc)

    javadoc -d docs HelloWorld.java


  • 命令行编译是理解Java构建过程的核心,尤其适用于自动化脚本或服务器环境。
  • 对于复杂项目,建议使用构建工具(如MavenGradle)管理依赖和编译流程。
  • 始终验证环境变量配置,这是成功编译的前提。

引用说明参考Oracle官方文档Java SE开发指南及OpenJDK社区实践,环境变量配置部分遵循各操作系统标准规范。

0