Java源文件须用javac编译为.class字节码,不可直接运行.java;需确认javac可用(javac -version),否则检查JDK安装及PATH配置;编译时注意大小写、public类名与文件名一致、包结构与目录匹配、-d指定输出路径等关键点。

Java源文件必须用javac命令编译成字节码(.class文件),不能直接运行.java文件。
确认javac是否可用
在终端或命令行中执行:javac -version。如果提示“command not found”或“不是内部或外部命令”,说明JDK未安装,或PATH未包含JAVA_HOME/bin路径。Windows下常见错误是只装了JRE(只有java,没有javac);macOS/Linux需检查which javac是否返回有效路径。
编译单个.java文件
确保当前目录下有HelloWorld.java,且含public class HelloWorld和main方法:
javac HelloWorld.java
成功后生成HelloWorld.class。注意以下几点:
立即学习“Java免费学习笔记(深入)”;
-
javac对大小写敏感:类名必须与文件名完全一致(包括大小写) - 若类声明为
public,文件名必须与该类名相同 - 默认不生成调试信息;如需调试,加
-g参数:javac -g HelloWorld.java - 编译失败时,错误信息会指出行号和问题类型(如
cannot find symbol通常表示类/变量未声明或拼写错误)
处理依赖和包结构
若代码使用了自定义包(如package com.example;),源文件必须放在对应目录结构中(com/example/HelloWorld.java),然后从com/example的父目录执行:
javac com/example/HelloWorld.java
或者用-d指定输出目录,让javac自动创建包路径:
javac -d . com/example/HelloWorld.java
常见陷阱:
- 忘记
-d .导致.class文件散落在源码目录,后续java运行时报NoClassDefFoundError - 类路径(
-cp)只影响java运行时,不影响javac编译——除非引用外部.jar,此时需用-cp或-classpath告诉javac去哪找依赖类 - 多个源文件一起编译,可通配:
javac com/example/*.java,但需确保所有依赖类已存在或一并列出
真正容易卡住的地方不是语法,而是目录结构、包声明和类路径三者没对齐;哪怕只有一个.或斜杠方向错了,javac不会报“路径错误”,而会报“找不到符号”或“类重复定义”。










