Java 编译
编译一个很小的教学文件,并运行它生成的 class 文件。在 Build.java 里保留 public 类 Build,第一个演示打印 ok;改文件并再次编译后,第二个演示打印 ok 和 built。运行 javac Build.java,让 Build.class 出现在源文件旁边。用 java Build 运行——不是 java Build.java。Mini Project 留给下一页。本课是用可见的 .class 养成「编译再运行」的习惯,不是新库调用,也不是课程收官。
先编译一次,再运行类
打开 Build.java。保留 public 类名 Build。删掉残留的 Recap Summary 演示、残留的 Dice Random 掷骰、残留的 Stamp 日期打印,以及任何等待键盘输入的 Scanner。程序不能等待输入。
在 Build.main 里打印一个短词:
System.out.println("ok");
在存放 Build.java 的文件夹里运行 javac Build.java。花括号与分号都正确时,javac 自己不打印一行。它会在源文件旁写出 Build.class。Java 启动器加载的就是这个 .class。
然后运行 java Build。运行命令不要带 .java 结尾。保持一个 public 类,让名字与 Build 一致。屏幕显示 ok。
public class Build {
public static void main(String[] args) {
System.out.println("ok");
}
}
走一遍运行。javac 读 Build.java 并写出 Build.class。java Build 加载 Build.class,从 Build.main 开始,打印 ok。不会构造 new Random(42)。不会打印 Recap 的 ready 42。不会冻结某一天。
看着文件夹说出新手规则:源文件以 .java 结尾,字节码以 .class 结尾;用 javac 编译,用 java 加类名运行。别在本页发明 Mini Project,它等下一课。别输入 java Build.java——在这条课程路径里那是错误的运行写法。
若仍看到残留 Recap 文件的 ready 42,请切换到 Build.java,在 javac Build.java 之后运行 java Build。若 javac 报错,先改源文件再编译后运行。若运行说找不到主类 Build,确认你在有 Build.class 的文件夹里,且编译已成功。
改源文件,再编译一次
第一个演示证明一次成功编译。第二个证明:改了代码就要重新 javac,屏幕才会变。仍是 public 类 Build。打印两行:
System.out.println("ok");
System.out.println("built");
保存文件。再运行 javac Build.java 以重写 Build.class。然后 java Build。屏幕先 ok,再 built。
若改了源文件却跳过 javac,java Build 可能仍只显示旧 .class 里的 ok。这种过期屏幕是编译课,不是 Random 课。本页每次保存的修改之后都要编译。
public class Build {
public static void main(String[] args) {
System.out.println("ok");
System.out.println("built");
}
}
再执行 javac Build.java 和 java Build。走一遍运行。新的 .class 里有两行打印。第一行写 ok。第二行写 built。不等待键盘。不存种子。不把 ready 和 42 拼在一起。
把两个演示当成两种教学形状。先证明干净编译后的一行。再证明重编译后的两行。两种形状共用类名与命令。第二种只是多一个 println。
若删除 Build.class 却不编译就运行 java Build,启动器会失败,因为缺少字节码。再编译以恢复 Build.class。若一个文件里两个 public 类,javac 会抱怨——教学文件里只让 Build 是 public。
javac 与 java
这两条命令看起来相似,做的事不同。练习时把它们分开。
📊 Build 的编译与运行习惯
| 命令 | 作用 | 新手检查 |
|---|---|---|
javac Build.java |
读源文件,写出 Build.class |
成功往往静默;去找 .class 文件 |
java Build |
加载 Build.class 并启动 main |
此命令不要 .java 结尾 |
java Build.java |
本课错误写法 | 改正命令;别把它当教学运行 |
改代码后跳过 javac |
可能仍跑旧字节码 | 屏幕过期意味着要再编译 |
缺少 Build.class |
运行无法加载类 | 先 javac Build.java |
编译不是 Summary,也不是 Mini Project
Summary 要你解释 Recap 的 ready 42。Compiling 要你观察 javac 写字节码、java 加载它。Mini Project 会在下一页让你用自己已有的小块拼一个小程序。今天别把这三件事混在一个新手文件里。
ok 和 built 只是本教学文件的屏幕词。不是 Random 点数,也不是 Summary 地图行。若残留 Dice 文件缺 Random 的 import,那是 Random 练习的问题,不是 Compiling。若 Recap 仍打印 ready 42,把那个文件当历史,屏幕上保持 Build。
没有 javac 就没有最新源文件对应的 .class。没有正确的 java Build,你可能永远加载不了那个类。两步都要做。类名与文件名一致。Mini Project 的文件等到那课再碰。
离开前检查文件夹
成功编译后列出文件夹。应同时看到 Build.java 和 Build.class。源文件是你编辑的。class 文件是你运行的。新手有时会追着屏幕却改错文件——打开 Build.java,保存,编译,再运行。
若 javac 找不到 Build.java,检查当前文件夹与文件名拼写,包括大写 B。若运行无输出,确认 main 里仍有 println 行。若加了 built 后屏幕仍只有 ok,多半跳过了第二次编译。
别把 Compiling 当成发明 package 树或 jar 打包的地方——那些主题在后面。本页保持一个 public 类、两种清晰屏幕,以及 javac / java 这一对。
Mini Project 之前
你可以保留 public 类 Build,第一个演示打印 ok,第二个打印 ok 再 built,用 javac Build.java 编译,看见 Build.class,并用不带 .java 的 java Build 运行。表格区分编译与运行。下一页是 Mini Project,用你已经会的小块搭一个小程序。
把 Build 演示当成清晰的「编译—运行」一对。练习 Compiling 时别把 Recap Summary 文件带到本页。练习 Compiling 时别把 Random 骰子演示带到本页。Mini Project 的工作等到那课再做。这些习惯是继续前的检查点。当单行屏幕是 ok 或双行是 ok 再 built,Compiling 就完成了本课任务,你可以进入 Mini Project。
最后再扫一遍文件夹:一个 public Build,javac 后有 Build.class,不等待键盘,不强行 Random 或 LocalDate import,运行命令不带 .java。在你留着的演示上再跑一遍 javac Build.java 和 java Build。若屏幕仍是 ok 或 ok 再 built,Compiling 形状稳固,课程可在下一页进入 Mini Project。每次阅读保持一条清晰的编译习惯,让每一遍都教同一张地图。
🧠 测试您的知识
测试您的知识
通过这个互动测验挑战自己,看看你对这个主题的理解程度如何
📝 说明
- 仔细阅读每个问题
- 为每个问题选择最佳答案
- 您可以随时重新参加测验
- 您的进度将显示在顶部