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

Java命令行运行报错:无法找到或加载主类Scheduling求助

解决「Could not find or load main class Scheduling」的包路径问题

别慌,这是Java包机制最容易踩的坑之一!你遇到的问题完全是因为包声明和运行时的类路径不匹配导致的,咱们一步步解决:

问题根源

你的代码里写了package scheduler;,这就告诉Java:这个Scheduling类属于scheduler包,JVM会期望它的.class文件放在一个名为scheduler的子目录下,而且运行时必须从这个子目录的父目录启动,用「包名.类名」的全限定名来调用。

具体解决步骤

1. 先整理文件结构

把你的Scheduling.java放到一个名为scheduler的文件夹里,最终结构应该是这样:

你的项目根文件夹/
    scheduler/
        Scheduling.java

2. 正确编译代码

有两种编译方式,选一种就行:

  • 如果你在项目根文件夹下,直接执行:
    javac scheduler/Scheduling.java
    编译后的Scheduling.class会自动留在scheduler文件夹里,完美符合包结构要求。
  • 如果你现在就在scheduler文件夹里,用-d参数指定编译输出到父目录:
    javac -d .. Scheduling.java
    这会在父目录自动生成scheduler文件夹,并把编译好的.class文件放进去。

3. 用全限定类名运行

回到项目根文件夹,执行以下命令:
java scheduler.Scheduling
这时候JVM就能正确找到scheduler包下的Scheduling类了。

为什么之前直接运行不行?

你之前在scheduler文件夹里执行java Scheduling,JVM会在当前目录找一个没有包声明的Scheduling类,但你的类明确属于scheduler包,所以它自然找不到——就像你把文件放进了子文件夹,却在父目录找它一样!

内容的提问来源于stack exchange,提问作者RyanP

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:30:35