Java程序编译的基本命令
在服务器维护过程中,经常需要手动编译Java源代码。最常见的命令就是 javac,它是JDK自带的编译器。比如你有一个名为 HelloWorld.java 的文件,直接在终端执行:
javac HelloWorld.java如果代码没有语法错误,就会生成一个 HelloWorld.class 文件。这个class文件就可以用 java 命令来运行。
编译多个Java文件
实际项目中很少只有一个文件。假设当前目录下有 Service.java、Utils.java 和 Main.java 三个源文件,可以一次性全部编译:
javac *.java这样所有以 .java 结尾的文件都会被编译。适合在部署前快速构建基础类文件。
指定编译输出路径
默认情况下,.class 文件会和 .java 文件放在同一目录。但为了保持整洁,通常会把编译结果放到单独的目录,比如 classes/。可以这样做:
mkdir classes
javac -d classes/ *.java使用 -d 参数指定输出目录,所有生成的 class 文件都会按包结构自动存放到 classes 目录中。这对后续部署和清理都很方便。
处理带包声明的Java文件
如果Java文件里有 package 声明,比如 package com.example;,就不能直接在当前目录编译。必须从项目根目录开始,并保持目录结构。例如源文件路径是 src/com/example/App.java,应该这样操作:
javac -d classes/ src/com/example/*.java编译后会在 classes/ 下自动生成 com/example/ 路径结构,符合JVM加载类的要求。
编译时指定类路径
有些程序依赖外部jar包,比如用到了 mysql-connector-java。这时候需要通过 -cp 或 -classpath 加载依赖:
javac -cp ".:mysql-connector-java-8.0.33.jar" App.javaLinux或macOS系统用冒号分隔路径,Windows则用分号。这样编译器才能找到第三方库中的类。
常见编译问题排查
如果执行 javac 报错“命令未找到”,说明JDK没装好或者环境变量没配。检查 JAVA_HOME 是否指向JDK目录,并确认 bin 目录已加入 PATH。可以通过输入 java -version 和 javac -version 来验证。
另一个常见问题是编码错误。如果源文件包含中文注释却报错,可以加上编码参数:
javac -encoding UTF-8 Main.java避免因字符集不一致导致编译失败。