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