练习代码如下:

import com.esotericsoftware.kryo.Kryo;
import com.esotericsoftware.kryo.io.Input;
import com.esotericsoftware.kryo.io.Output;
import com.esotericsoftware.kryo.serializers.JavaSerializer;import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;public class KryoDemo {public static void main(String[] args) {// 创建对象Person obj = new Person(123, "Sam");System.out.println(obj);// 序列化Kryo kryo = new Kryo();ByteArrayOutputStream os = new ByteArrayOutputStream();Output output = new Output(os);kryo.writeObject(output, obj);byte[] bytes = os.toByteArray();// 反序列化Input input = new Input(new ByteArrayInputStream(bytes));Person p = kryo.readObject(input, Person.class);System.out.println(p);}}

运行报错:
Exception in thread “main” java.lang.IllegalArgumentException: Class is not registered: org.example.Person
Note: To register this class use: kryo.register(org.example.Person.class);
 at com.esotericsoftware.kryo.Kryo.getRegistration(Kryo.java:512)
 at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:560)
 at org.example.KryoDemo.main(KryoDemo.java:21)

其实是因为缺了下面的语句:

kryo.register(Person.class, new JavaSerializer());

完整代码:

import com.esotericsoftware.kryo.Kryo;
import com.esotericsoftware.kryo.io.Input;
import com.esotericsoftware.kryo.io.Output;
import com.esotericsoftware.kryo.serializers.JavaSerializer;import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;public class KryoDemo {public static void main(String[] args) {// 创建对象Person obj = new Person(123, "Sam");System.out.println(obj);// 注册实体类Kryo kryo = new Kryo();kryo.register(Person.class, new JavaSerializer());// 序列化ByteArrayOutputStream os = new ByteArrayOutputStream();Output output = new Output(os);kryo.writeObject(output, obj);byte[] bytes = os.toByteArray();// 反序列化Input input = new Input(new ByteArrayInputStream(bytes));Person p = kryo.readObject(input, Person.class);System.out.println(p);}}

同样地,Spark用到Kryo的时候也要注册!此处不加赘述!

【Java】Kryo运行报错:Exception in thread “main“ java.lang.IllegalArgumentException:Class is not registered相关推荐

  1. 【错误记录】Groovy 运行报错 ( Exception in thread “main“ groovy.lang.MissingMethodException: No signature of )

    一.报错信息 在使用 Groovy 闭包时 , 会报如下错误 : Exception in thread "main" groovy.lang.MissingMethodExcep ...

  2. IDEA运行redis多线程访问报错Exception in thread “main“ java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory

    错误样式: 解决方案: 下载两个JAR包即可,同样的代码我在MyEclipse中运行就不报错,可能是IDEA缺少这两个JAR包吧,而ME本身自带了 托管下载地址:Central Repository: ...

  3. 【亲测有效】如何解决Hadoop运行jar包 报错Exception in thread “main“ java.lang.ClassNotFoundException: /input

    报错解释 字面意思就是我要运行这个jar但是Java无法找到主类 试错过程 你可能会在这里添加主类,但是还是不行.你可能没辙了. 解决办法 <build><finalName> ...

  4. SpringBoot—启动报错Exception in thread “main“ java.lang.ClassNotFoundException

    问题   在微服务启动时,日志排查发现无法启动. 解决方案 查看是否有xxxApplication类. 在pom.xml中查看中的内是否未加xxxApplication类.

  5. springboot启动报错Exception in thread “main“ java.lang.NoClassDefFoundError: io/netty/util/Timer

    原因: 这是缺少netty包的原因. 解决方法: 加入一下依赖: <!-- https://mvnrepository.com/artifact/io.netty/netty-all --> ...

  6. Hadoop的java程序报错Exception in thread main java.io.FileNotFoundException: File does not exis

    找了半天发现是因为路径没有写全 正确路径应该是E:/abc.txt 注意检查路径是不是写全了,尤其是后缀!!!

  7. 报错Exception in thread “main“ java.lang.NoClassDefFoundError: javax/xml/bind/...

    项目一开始用的是jdk8,后来重新导入项目没有设置jdk的版本,idea自动设置jdk11 , jdk11没有javax.xml.bind 这个包,需要手动导包: <!-- https://mv ...

  8. idea启动springboot时报错Exception in thread “main“ java.lang.UnsupportedClassVersionError:

    idea启动springboot时报错Exception in thread "main" java.lang.UnsupportedClassVersionError:org/s ...

  9. PI 使用JNative连接报错Exception in thread “main“ java.lang.IllegalStateException: JNative library not load

    使用java调用PiApiTools连接PI数据库报错: Exception in thread "main" java.lang.IllegalStateException: J ...

  10. 函数式编程实例WordCount(林子雨老师慕课代码) 由于文件引入的问题之前报过Exception in thread “main“ java.lang.NullPointerExcept(已解决)

    函数式编程实例WordCount 数据文件目录: 文件内容: 刚开始在写文件的时候以为val dirfile = new File("data")这一行写的是具体文件,于是我写成了 ...

最新文章

  1. Java基础知识练习02
  2. 【基带传输】基于matlab的简易无线基带传输系统的仿真
  3. Android踩坑日记:自定义水平和圆形ProgressBar样式
  4. oracle重命名日志成员出错,Oracle日志文件
  5. BURP 测试出 OPTIONS PUT DELETE TRACE 方法
  6. 【ArcGIS风暴】在ArcGIS中实现将一个圆16等分
  7. 计算机专业学术论文精选,计算机科学与技术专业本科生毕业论文精选.doc
  8. Conda solving environment一晚上还不能完成有解吗?
  9. html logo动画效果图,简单CSS3技巧实现的Logo动画
  10. python实现安卓点击_python模拟点击在ios中实现的实例讲解
  11. iis 附件上传有点慢_短视频悄悄上线!“一起培训”的这个新功能有点潮
  12. ASP.net中实现双表格同步缩放不变形
  13. 阶乘末尾 0 的个数
  14. python的raw_对于Python中RawString的理解(引用)
  15. linux qt遍历设备,Qt获取设备环境变量
  16. c语言浪漫烟花表白,C语言实战之浪漫烟花表白程序.pdf
  17. 打印机出现另存为xps_打印机打印文件显示另存为xps格式的文件 - 卡饭网
  18. 【Redis系列】Redis 入门指南
  19. 使用prometheus+grafana监控k8s集群
  20. VTK学习笔记(十九)vtk polydata

热门文章

  1. python中前后端通信方法Ajax和ORM映射(form表单提交)
  2. oracle 时间加减
  3. 面向对象编程其实很简单——Python 面向对象(初级篇)
  4. iOS开发Swift篇—(三)字符串和数据类型
  5. fork()调用使子进程先于父进程被调度
  6. swing中如何将jtable中的数据导入到excel中?
  7. 求最大公约数----辗转相除法
  8. MAC 更新 PHP 指南 以及 PHP常用命令示例
  9. springboot 禁用tomcat_Spring Boot 面试的十个问题
  10. php 序列化 java_PHP--序列化与反序列化详解