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

如何在命令行编译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如下:

    如何在命令行编译Java  第1张

    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_HOMEPath配置。
  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构建过程的核心,尤其适用于自动化脚本或服务器环境。
  • 对于复杂项目,建议使用构建工具(如Maven或Gradle)管理依赖和编译流程。
  • 始终验证环境变量配置,这是成功编译的前提。

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

0