You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用分文件夹存放的多个Java文件并解决javac编译报错问题

问题根因
  • Java的包机制要求包名和实际目录层级完全对应,编译、运行时的classpath需要指向包结构的根目录,而非包对应的子目录。
  • 你之前的编译命令存在两个错误:一是classpath指向了sth子目录而非根目录,二是没有把两个关联的Java文件同时纳入编译,javac找不到another_one类的定义。
操作步骤

你的包结构根目录为C:\Users\Admin\Desktop\test\java,根目录下存在program(存放main.java)、sth(存放another_one.java)两个子目录,按以下顺序操作即可:

  1. 切换CMD路径到包结构根目录:
    cd C:\Users\Admin\Desktop\test\java
  2. 同时编译两个Java文件:
    javac program/main.java sth/another_one.java
    编译完成后,会分别在program目录下生成main.class、sth目录下生成another_one.class。
  3. 运行时指定全限定类名(包名+类名):
    java program.main
    运行后会正常输出:
From another one
main
补充说明
  • 如果你需要分开编译两个文件,先编译被依赖的类:在根目录执行javac sth/another_one.java,再执行javac -cp . program/main.java即可,-cp .的作用是把当前根目录加入类路径,让javac可以找到sth包下的类。
  • 建议遵循Java命名规范,类名首字母大写,例如Main、AnotherOne,避免后续出现兼容问题。

内容的提问来源于stack exchange,提问作者Đăng Khôi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 01:45:03