1. 安装Java开发工具包(JDK)
在Linux系统上编译Java程序的前提是安装JDK(包含javac编译器、JRE运行时环境及基础类库)。根据发行版选择包管理器安装:
sudo apt update && sudo apt install openjdk-11-jdk(以OpenJDK 11为例);sudo yum install java-11-openjdk-devel。java -version(查看JRE版本)和javac -version(查看编译器版本)验证安装是否成功。2. 配置环境变量(可选但推荐)
为方便全局使用javac和java命令,需设置JAVA_HOME(JDK安装路径)和PATH(命令搜索路径)。编辑~/.bashrc(或~/.bash_profile)文件,添加以下内容(以OpenJDK 11为例):
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 # 根据实际路径调整
export PATH=$JAVA_HOME/bin:$PATH
保存后运行source ~/.bashrc使配置生效,可通过echo $JAVA_HOME确认路径是否正确。
3. 编写Java源代码
使用文本编辑器(如vim、nano或gedit)创建.java文件,文件名需与公共类名一致(区分大小写)。例如,创建HelloWorld.java:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, Linux Java Compilation!");
}
}
保存后退出编辑器。
4. 编译Java源代码
打开终端,使用cd命令切换到源文件所在目录,运行javac命令编译:
javac HelloWorld.java
若编译成功,当前目录会生成对应的.class字节码文件(如HelloWorld.class);若存在语法错误,javac会输出错误信息(如“找不到符号”“语法错误”),需根据提示修改源代码后重新编译。
5. 处理编译选项(进阶需求)
-d参数将.class文件生成到指定目录(如build/classes),避免源码目录混乱:mkdir -p build/classes # 创建输出目录
javac -d build/classes HelloWorld.java
lib/utils.jar),使用-cp(或-classpath)参数指定类路径:javac -cp "lib/*" -d build/classes src/*.java # 编译src目录下所有.java文件,依赖lib目录下的JAR包
*.java一次性编译当前目录下所有Java文件:javac *.java
```。
6. 运行编译后的程序
编译成功后,使用java命令运行程序(无需加.class后缀),需指定公共类的全限定名(含包名,若未指定包名则为类名本身):
java HelloWorld # 无包名的情况
若编译时使用了-d参数指定了输出目录,需通过-cp参数指定类路径:
java -cp build/classes HelloWorld # 指定类路径为build/classes
运行成功后,终端会输出程序结果(如“Hello, Linux Java Compilation!”)。
7. 常见问题排查
java -version或javac -version提示“command not found”,需重新安装JDK并检查环境变量配置;javac输出的错误信息(如“cannot find symbol”“illegal start of expression”),定位并修改源代码中的语法或逻辑错误;ClassNotFoundException或NoClassDefFoundError,需检查类路径(-cp参数)是否包含所有依赖的类文件或JAR包;OutOfMemoryError,可通过-Xmx(最大堆内存)和-Xms(初始堆内存)参数调整JVM内存大小(如java -Xmx1024m -Xms512m HelloWorld)。