Java程序运行核心是写对源文件名与类名、配好JDK环境变量;需确保javac/java命令可用,文件名与public类名严格一致,编译运行在正确路径下,注意大小写敏感和包声明规则。

Java程序能跑起来,核心就两步:写对源文件、用对命令。其他所有问题——报错、找不到类、乱码——基本都卡在这两个环节。
确保 javac 和 java 命令可用
不是装了JDK就自动能用,得确认它们在系统 PATH 里:
- 终端执行
javac -version和java -version,必须都输出版本号(比如17.0.1) - 如果提示
command not found,说明环境变量没配好;Windows 用户重点检查JAVA_HOME是否指向 JDK 根目录,且%JAVA_HOME%\bin已加入PATH - 别用 JRE 目录下的
bin——它只有java,没有javac,编译直接失败
HelloWorld.java 文件名和类名必须严格一致
Java 要求 public 类的名称与文件名完全相同(包括大小写),且一个 .java 文件里最多一个 public 类:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
- 文件必须叫
HelloWorld.java,不能是helloworld.java或HelloWorld.JAVA - 类名
HelloWorld首字母大写,main方法签名不能写成main(String args[])(虽语法允许,但非常规,易被 IDE 或教学环境拒绝) - 如果类不是 public(比如
class HelloWorld),文件名仍需是HelloWorld.java,但此时不能加public修饰符
编译和运行必须在正确路径下执行
当前工作目录决定 javac 找源码的位置,也影响 java 加载类时的默认 classpath:
- 假设
HelloWorld.java在/home/user/demo/下,先cd /home/user/demo,再运行javac HelloWorld.java - 生成的
HelloWorld.class会出现在同一目录;运行时必须仍在该目录下,执行java HelloWorld(注意:不带.class后缀) - 如果执行
java ./HelloWorld或java demo.HelloWorld,会报Could not find or load main class—— Java 把点号当成包分隔符,不是路径分隔符 - 有包声明(如
package demo;)时,文件必须放在对应子目录(demo/HelloWorld.java),编译和运行命令也要进到上层目录操作
最容易忽略的是大小写敏感和当前路径——Linux/macOS 下 helloworld.java 和 HelloWorld.java 是两个文件;Windows 虽不区分,但 java 命令内部仍按大小写匹配类名,错一个字母就找不见主类。










