报错一:找不到或无法加载主类 ***Application(已解决)报错二:找不到符号(已解决)

        前言:今天启动spring boot项目,发现启动不起来,报了一个无法加载主类的错误,后面解决后,准备打包部署项目,发现又报了一个找不到符号的错误,后面也是顺利解决,在此记录一下我的Debug之旅。

报错一:找不到或无法加载主类 ***Application

报错截图:

       遇到 ​​“找不到或无法加载主类”​​ 错误时,通常是由于 ​​类路径配置错误​​、​​主类未正确编译​​ 或 ​​项目结构问题​​ 导致的。

以下是详细的排查和解决方案:

​可能原因​​:

  • 旧编译文件残留导致类未生成。
  • 构建工具(Maven/Gradle)未正确执行。

解决方法:

1. 确认主类是否存在且路径正确​,如果文件路径或包名不匹配,修正路径或包声明。

​2. 清理并重新构建项目​(本人是根据这个成功解决) Build--->Rebuild Project

报错二:找不到符号

报错截图:

当打包时出现 ​​“找不到符号”​​(cannot find symbol)错误,通常是因为代码中引用了未定义的类、方法或变量。以下是详细的排查和解决方案:

一: 检查依赖是否正确引入​

​可能原因​​:
  • 缺少依赖库,或依赖未正确下载。
  • 依赖的作用域(scope)设置不当(如 test 或 provided 导致主代码不可用)。
  • 依赖版本冲突,导致API不兼容。
​解决方法​​:
  1. ​确认报错符号的来源​​:

    • 根据错误日志,找到缺失的类或方法属于哪个依赖库。
    • 例如:cannot find symbol: class SomeClass → 检查 SomeClass 所在的依赖是否在 pom.xml 或 build.gradle 中声明。
  2. ​添加缺失的依赖​​(以 Maven 为例):

    <!-- 示例:添加 Lombok 依赖 -->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.30</version>
        <scope>provided</scope>
    </dependency>

  3. ​检查依赖作用域​​:

            确保依赖的 scope 不是 test 或 provided(除非明确需要)。
  4. ​更新依赖版本​​:

            如果依赖版本过旧,可能缺少某些类或方法。尝试升级到最新版本。

 二:检查多模块项目依赖​

​可能原因​​:
  • 多模块项目中,子模块之间的依赖未正确声明。(本人是因为这个)
  • 构建顺序错误,导致某些模块未编译完成就被引用。
​解决方法​​:
  1. ​确认子模块依赖​​:

    • 在父 pom.xml 中检查子模块的 <modules> 顺序,确保被依赖的模块先构建。
    • 子模块间的依赖需通过 <dependency> 明确声明:
      <!-- 子模块A依赖子模块B -->
      <dependency>
          <groupId>com.example</groupId>
          <artifactId>module-b</artifactId>
          <version>${project.version}</version>
      </dependency>
  2. ​清理并重新构建​​:

    mvn clean install -pl module-a -am  # 构建 module-a 并自动构建其依赖的模块
### 解决 IntelliJ IDEA 中 Scala 项目运行时 '不到无法加载 Main' 的问题 当遇到 'Cannot find or load main class Main' 错误时,通常是因为项目的配置不正确者构建工具未能正确解析依赖项和源文件。以下是可能的原因以及解决方案: #### 可能原因及解决方法 1. **模块设置错误** 如果 `Main` 所在的包未被识别为源根目录,则可能会发生此错误。需要确认 `src/main/scala` 是否已被标记为源根目录。 - 打开项目结构对话框 (`File -> Project Structure`)。 - 转到 `Modules` 部分并选择相应的模块。 - 确认 `Sources` 标签页中的 `src/main/scala` 已经被标记为蓝色(表示它是源代码路径)。如果尚未标记,请右键单击该目录并选择 `Mark as Sources Root`。 2. **编译器输出路径配置不当** 编译后的 `.class` 文件如果没有正确放置在目标目录下,也会引发此问题。 - 进入 `Project Structure -> Modules -> Paths` 页面。 - 检查 `Output path` 和 `Test output path` 设置是否指向正确的目录,默认情况下应分别为 `out/production/<module_name>` 和 `out/test/<module_name>`[^1]。 3. **Scala 插件未启用** 若 IDE 中缺少必要的插件支持,可能导致无法正常处理 Scala 文件。 - 前往 `Settings -> Plugins` 查看是否有安装 “Scala” 官方插件;若无则需下载并激活它。 4. **Gradle/Maven 构建脚本定义有误** 对于采用 Gradle Maven 构建管理系统的工程来说,其 POM 文件 build.gradle.kts/kotlin DSL 存在缺陷同样会阻碍程序执行流程。 - 使用 Groovy、Ruby、Scala Clojure 来编写自定义逻辑时要格外小心语法准确性。 ```groovy plugins { id 'org.scala-lang.plugins.ide.sbt-structure-importer' version '0.7' id 'application' } application { mainClass = 'com.example.MainApp' } repositories { mavenCentral() } dependencies { implementation 'org.scala-lang:scala-library:2.13.+' } ``` 5. **虚拟机选项参数丢失** 当指定 JVM 启动参数失败时也可能抛出上述异常提示信息。 - 修改 Run Configuration 下对应的 VM options 字段内容来修正这状况。 通过以上调整应该可以有效缓解乃至彻底消除因配置失误所引起的 "cannot find or load main class" 报错现象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值