遇到比较奇怪的问题,mvn项目中的main函数可以正常运行,但是test阶段出错,报错信息如下:

Exception in thread "main" java.lang.NoClassDefFoundError: scala/ScalaObject
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$(Unknown Source)
at java.net.URLClassLoader$.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at learning_scala.java.Main.main(Main.java:)
Caused by: java.lang.ClassNotFoundException: scala.ScalaObject
at java.net.URLClassLoader$.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)

test代码如下:

class Sampling$Test extends FunSpec{
describe("Sampling Test"){
val spark = SparkSession
.builder()
.master("local")
.getOrCreate()
println("......")
it("should run without exeption."){
val array: Array[String] = Array("down", "xxx", "xxx", "xxx", "xxx")
Sampling.main(array)
}
}
}

解决方法:

将 scala-library.jar 的路径加入到 CLASSPATH 中(参考:https://stackoverflow.com/questions/7781547/noclassdeffounderror-scala-scalaobject-in-mixed-scala-java-project),但是又报了如下错误:

Error:scalac: error while loading Suite, Scala signature Suite has wrong version
expected: 5.0
found: 4.1 in Suite.class

是scala和单元测试包不匹配造成的,将org.specs包更新到最新,问题解决:

<dependency>
<groupId>org.specs</groupId>
<artifactId>specs</artifactId>
<version>1.4.</version>
<scope>test</scope>
</dependency>

最新文章

  1. Spark 运行架构核心总结
  2. 1.3 基础知识——GP2.1 方针(Policy)
  3. 青瓷引擎使用心得——修改引擎的loading界面
  4. uva 1584.Circular Sequence
  5. Web前端之html_day1
  6. oracle数据库中varchar2陷阱
  7. 如何做好IT运营.
  8. Oracle表空间管理
  9. android 项目学习随笔三(Fragment )
  10. smartgit document merge
  11. c#实现word,winWordControl 文档不允许复制、粘贴、隐藏工具栏、快捷保存
  12. SCJP_104——题目分析(4)
  13. 如何实现android蓝牙开发 自动配对连接,并不弹出提示框
  14. 基于Linux根据僵尸网络病毒平台《比尔盖茨》
  15. sql server 2012提示评估期已过的解决办法 附序列号
  16. zf-关于荆州首页鼠标移动到导航栏上去触发的js 显示 问题解决办法
  17. vuejs单一事件管理组件间的通信
  18. windows NLB实现MSSQL读写分离--从数据库集群读负载均衡
  19. convert sorted list to binary search tree(将有序链表转成平衡二叉搜索树)
  20. https 对 json空对象解析的影响

热门文章

  1. Leetcode 483.最小好进制
  2. 从几率到logisitic函数
  3. Python 开启线程的2中方式,线程VS进程(守护线程、互斥锁)
  4. 利用hibernate与struts框架制作简单注册界面
  5. 【bzoj4310】跳蚤 后缀数组+二分
  6. python解析yaml文件
  7. Linux服务器的安装
  8. 关于npm run dev和npm run build的问题
  9. visual studio NuGet 常用包管理命令
  10. mybatis如何传入一个list参数