Scala项目找不到或无法加载主类

1,出错背景

Scala项目无法创建scale和Java文件。项目没有报错,但执行时项目总是找不到项目下的类,报错信息如下所示:

错误: 找不到或无法加载主类 com.my.memTestCheck

但该类是存在的.

2,分析与解决

该项目的Models下有多个model,导致加载的时候不知道加载那个项目的。
在这里插入图片描述

而且在操作model下的信息时会报错说冲突:
在这里插入图片描述

解决办法
1,将其中一个model去掉即可,将model的Dependencies比较少的那个去掉
file->“Project Strucure”->Models 下的另一个model去掉。
2,然后在model的依赖中引入Scala的sdk
完成1之后执行的时候还会报错:

Exception in thread "main" java.lang.NoClassDefFoundError: scala/Predef$

然后在file->“Project Structure”->“Modules”->“Dependencies”
点击‘+’ 选择"2 Library"
在这里插入图片描述

点击Scala包,”Add Selected“ 添加进去。
在这里插入图片描述
3,在pom文件中设置先编译Scala
通过1,2之后程序基本可以执行,在执行的时候有时候会出现找不到符号的情况,重新rebuild之后就可以执行了但下次执行还会出现这种问题:
在这里插入图片描述
尤其是在使用maven打包的时候会报错:
在这里插入图片描述
报错:

Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project rt-n-flink: Compilation failure: Compilation failure:
/checkDemo.java:[63,9] 找不到符号
  符号:   类 test_check_content

在pom文件的build->plugins下添加plugin:

      <plugin>
        <groupId>net.alchim31.maven</groupId>
        <artifactId>scala-maven-plugin</artifactId>
        <version>3.2.2</version>
        <executions>
          <execution>
            <id>scala-compile-first</id>
            <phase>process-resources</phase>
            <goals>
              <goal>compile</goal>
            </goals>
          </execution>
          <execution>
            <id>scala-test-compile</id>
            <phase>process-test-resources</phase>
            <goals>
              <goal>testCompile</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <jvmArgs>
            <jvmArg>-Xms128m</jvmArg>
            <jvmArg>-Xmx512m</jvmArg>
          </jvmArgs>
        </configuration>
      </plugin>

指定scala-compile-first 先编译Scala就可以了。
这样执行和打包都不回出错了。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一杯拿铁go

你的打赏是我更新最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值