Linux如何编译和运行Java文件?
- 后端开发
- 2025-06-26
- 7
环境准备:安装JDK
Java程序编译和运行需依赖JDK(Java Development Kit),推荐安装OpenJDK(开源实现)或Oracle JDK。
检查JDK是否安装
打开终端(Ctrl+Alt+T),输入:
java -version javac -version
若显示版本信息(如openjdk 17.0.8),说明已安装,若提示未找到命令,需安装JDK。
安装JDK(以Ubuntu为例)
sudo apt update sudo apt install openjdk-17-jdk # 安装OpenJDK 17
其他发行版:
- CentOS/Fedora:sudo dnf install java-17-openjdk-devel
- Arch Linux:sudo pacman -S jdk-openjdk
验证安装:
java -version # 应显示版本号
编译Java文件
使用javac命令将.java源文件编译为.class字节码文件。
步骤:
-
创建Java文件
例如编写HelloWorld.java:
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, Linux!"); } }
-
编译文件
终端进入文件目录,执行:
javac HelloWorld.java- 成功后会生成HelloWorld.class文件。
- 若文件在包中(如package com.example;),需保持目录结构: javac com/example/HelloWorld.java
常见问题解决:
-
错误:javac: 未找到命令
原因:JDK未安装或环境变量未配置。
解决:重新安装JDK,或手动配置PATH(如export PATH=$PATH:/usr/lib/jvm/java-17-openjdk/bin)。
-
错误:找不到符号
原因:类依赖未解决。
解决:
- 指定类路径:javac -cp ./libs/:. HelloWorld.java(libs为依赖库目录)。
- 编译多个文件:javac *.java。
运行Java程序
使用java命令执行编译后的.class文件。

步骤:
-
运行无包名的类
java HelloWorld终端输出:Hello, Linux!
-
运行带包名的类
若类属于包com.example:
java com.example.HelloWorld注意:
- 需在项目根目录执行(即com的上级目录)。
- 错误路径会导致找不到主类。
-
指定类路径(含外部JAR)
java -cp .:./libs/gson.jar com.example.MainClass- -cp:指定类路径(为当前目录,分隔多个路径)。
高级用法
-
打包为JAR运行

-
实时编译运行(适用于简单脚本)
java HelloWorld.java # Java 11+ 支持单文件直接运行 -
找不到或无法加载主类
- 原因:类名拼写错误、包路径不匹配、类未编译。
- 解决:
- 检查类名和包名。
- 确保在正确目录执行:带包名的类需在项目根目录运行。
- 重新编译文件。
-
权限不足
chmod +x HelloWorld.class # 为.class文件添加执行权限(通常非必须) -
不支持的Class版本
原因:编译版本高于当前JRE。
解决:
- 用-source和-target指定兼容版本: javac -source 11 -target 11 HelloWorld.java
- 或升级JDK至匹配版本。
- 安装JDK → 2. javac编译 → 3. java运行。
关键要点:
- 保持包结构与目录一致。
- 通过-cp管理类路径。
- 使用java -jar运行JAR包。
常见错误及解决
在Linux中操作Java只需三步:
Java在Linux上的开发体验高效且稳定,结合Shell脚本可实现自动化编译部署,适合服务器端应用开发。
引用说明参考Oracle官方Java文档(JDK User Guides)及OpenJDK社区实践,确保方法通用性,环境配置部分遵循Linux发行版官方仓库推荐。