Java:加载重构后保存在硬盘上的对象=>“找不到类”异常:/

2024-04-09

我正在用java开发一个应用程序,它使用这个简单的方法定期将对象保存到硬盘上:

public void save(String filename)
{
    try
    {
        FileOutputStream fos = new FileOutputStream(filename);
        GZIPOutputStream gzos = new GZIPOutputStream(fos);
        ObjectOutputStream out = new ObjectOutputStream(gzos);
        out.writeObject(this);
        out.flush();
        out.close();
    }
    catch (IOException e)
    {
        e.printStackTrace();
    }

}

该对象是 sebbot.learning.DirectPolicySearch 类的实例。

问题是,经过一些重构,学习包被重命名为“ballcapture”。现在,当我尝试加载已保存的文件时,出现以下异常:

java.lang.ClassNotFoundException:sebbot.learning.DirectPolicySearch

我用来加载文件的方法是:

public static synchronized DirectPolicySearch load(String filename)
{
    DirectPolicySearch dps = null;
    try
    {
        FileInputStream fis = new FileInputStream(filename);
        GZIPInputStream gzis = new GZIPInputStream(fis);
        ObjectInputStream in = new ObjectInputStream(gzis);
        dps = (DirectPolicySearch) in.readObject();
        in.close();
    }
    catch (Exception e)
    {
        e.printStackTrace();
    }

    System.out.println(dps);

    return dps;
}

谁能帮我这个 ? 多谢。


类名更改(包括包名更改)是破坏序列化机制的保证方法;它根本不适合与更改名称的类一起使用。

几乎您唯一能做的就是撤消重构以获取最初命名的类,然后将当前版本放入同一工作区,使用原始类进行反序列化,以编程方式将其内容复制到重构类的实例中,然后将其序列化。

如果您想避免这种麻烦,请考虑使用更健壮和灵活的序列化方法,例如XStream http://xstream.codehaus.org/.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java:加载重构后保存在硬盘上的对象=>“找不到类”异常:/ 的相关文章

  • Java - 从配置文件加密/解密用户名和密码

    我们正忙于为客户开发 Java Web 服务 有两种可能的选择 将加密的用户名 密码存储在Web服务客户端上 从配置中读取 文件在客户端 解密并发送 将加密的用户名 密码存储在 Web 服务器上 从配置中读取 Web 服务器上的文件 解密并
  • 指纹奇异点检测

    我正在尝试确定指纹的核心点和增量点 我正在使用庞加莱指数方法 但我无法成功检测到这一点 而且我不明白为什么 First I divide the image in 15x15 blocks then I calculate the x an
  • 如何在数据库中对 (Java) 枚举进行建模(使用 SQL92)

    您好 我正在使用名为 性别 的列对实体进行建模 在应用程序代码中 性别应该是一个 Java 枚举类型 有 2 个值 男性和女性 知道作为数据类型的枚举不是通用 SQL 语言 92 的一部分 您将如何建模它 数据模型必须是可移植的 以便由多个
  • 用于防止滥用的 Servlet 过滤器? (DoS、垃圾邮件等)

    我正在寻找一个 Servlet 过滤器库 它可以帮助我保护我们的 Web 服务免受未经授权的使用和 DDoS 攻击 我们的网络服务有 授权客户 因此理想情况下 过滤器将帮助检测未经授权或行为不当的客户 或检测使用同一帐户的多个人 此外 我们
  • 中间件 API 的最佳实践是什么? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我们正在开发一个中间件 SDK 采用 C 和 Java 语言 供游戏开发人员 动画软件开发人员 阿凡达开
  • Scala(或 Java)中泛型函数的特化

    是否可以在 Scala 中专门化泛型函数 或类 例如 我想编写一个将数据写入 ByteBuffer 的通用函数 def writeData T buffer ByteBuffer data T buffer put data 但由于 put
  • 如何将txt文件添加到你的android项目中? [复制]

    这个问题在这里已经有答案了 我的Android studio版本是1 5 1 显然这个 never 版本没有 txt 文件的 asset 文件夹 您打算如何将这些文件包含到您的项目中 以及如何进一步使用您内部的应用程序 谢谢你的建议 Pro
  • 如何获取 Android 中临时文件的文件大小?

    如果我使用 openFileOutput 创建并写入临时文件 写入完成后如何获取文件大小 我希望这可以帮助你 File file new File selectedPath int file size Integer parseInt St
  • 在多模块项目中访问绑定适配器

    我有一个多模块项目 其中应用程序模块包含我的绑定适配器 而我的功能模块取决于我的应用程序模块 因为它是动态功能模块 应用程序 包含绑定适配器 gt 动态功能模块 存在布局的地方 我在所有模块中启用了数据绑定和 kapt 我无法成功构建应用程
  • Netty中连接关闭后重新连接的最佳方法是什么

    简单场景 扩展 SimpleChannelUpstreamHandler 的较低级别的类 A 此类是发送消息和接收响应的主力 系统其他部分可以使用顶级类 B 来发送和接收消息 可以模拟同步和异步 此类创建 ClientBootstrap 设
  • NoSuchMethodError:将 Firebase 与应用程序引擎应用程序集成时

    我试图将 firebase 实时数据库与谷歌应用程序引擎应用程序集成 我在调用时收到此错误 gt DatabaseReference ref FirebaseDatabase gt getInstance gt getReference t
  • 如何在 Java 中创建要打印到 JFrame 的 JLabels 数组

    我正在尝试制作一系列标签 每个标签都有一个来自函数的不同值 我不知道要使用的标签的确切数量 我的意思是可以打印任意数量的值 请帮我做这件事 很简单 只需一个方法返回一个数组或一些 JLabels 集合 并将它们全部添加到您的 JCompon
  • 为什么 RMI 注册表忽略 java.rmi.server.codebase 属性

    我正在运行 java RMI 的 Hello World 示例 1 我在空文件夹中运行注册表 motta motta laptop tmp rmiregistry 2 我启动 HTTP 服务器以在运行时检索类 下载文件夹包含客户端 服务器的
  • setKeyListener 将覆盖 setInputType 并更改键盘

    大家好 我在两个设备之间遇到问题 在实践中使用InputType和KeyListener我正在操纵一个EditText让它从数字键盘接收逗号和数字 有关更多背景信息 请检查我之前的question https stackoverflow c
  • 使用 Cucumber Scenario Outline 处理 Excel 电子表格

    如果可能的话 我试图找到一种更优雅的方法来处理从与 Excel 电子表格行 第 n 个 相关的 Cucumber Scenario Outline 中调用第 n 个数字 目前 我正在使用迭代编号来定义要从中提取数据的 Excel 电子表格的
  • java中wav文件转换为字节数组

    我的项目是 阿塞拜疆语音的语音识别 我必须编写一个程序来转换wav文件到字节数组 如何将音频文件转换为byte 基本上如第一个答案中的片段所描述 但不是BufferedInputStream use AudioSystem getAudio
  • 如何使用 SAX Java 解析器读取注释文本

    我只想使用 Java 中的 SAX 解析器读取 XML 文件中对象标记的注释 这是我的文件的摘要
  • BoneCP 和 Derby - 如何正确关闭

    I have BoneCP CONNECTION POOL CONNECTION POOL getConfig setJdbcUrl jdbc derby database shutdown true Connection connecti
  • java数据结构模拟数据树

    我需要帮助定义使用什么方法 我有一个 SOAP 响应 给我一个 xml 文件 我需要在屏幕上显示 3 个相关列表 当您在第一个列表中选择一个项目时 相应的选择将出现在第二个列表中 依此类推 我只对从 xml 流中提取数据后如何有效地组织数据
  • C/C++ 通过 Android NDK 在 JNI 中看不到 Java 方法

    我正在尝试从使用 NDK 构建的 C 类文件调用 Java 方法 它不断抛出常见的 未找到非静态方法 错误并导致整个 Android 应用程序崩溃 下面的代码片段 有些东西可能不需要 但我按原样保留它们 因为焦点 问题在于refreshJN

随机推荐

  • 从表中选择随机单词

    假设我有以下基本 MySQL 数据 CREATE TABLE my words my word VARCHAR 255 INSERT INTO my words VALUES dog INSERT INTO my words VALUES
  • System.IO 找不到通过 subst-command 生成的路径

    context 系统有一个硬盘和一个驱动器 C 所需路径位于 F eventlogging 我做了什么 我执行了 subst cmd 以生成 F 驱动器 来自 C 添加了目录 eventlogging 问题 在代码中 有一些部分写入 F e
  • .NET 4.0 框架与 .NET 1.1 位于同一服务器上

    这些框架版本可以在同一台服务器上正常运行吗 这意味着 IIS 可以支持两个应用程序池 其中一个池配置为 NET 4 0 另一个池配置为 NET 1 1 编辑 这个问题与 IIS 7 有关 是的 您可以在同一个 IIS 实例中运行 1 1 2
  • 在 WKInterfaceLabel 内滚动长文本?

    简单的问题 有没有办法制作WKInterfaceLabel如果文本太长而无法适应标签框架 则滚动 类似于UITextView 你绝对可以做到这一点 您需要做的就是设置以下属性WKInterfaceLabel在故事板中 标签 gt 线 0 W
  • Fortran 读取混合字符串和数字数据

    我在读取语句时遇到问题 我更喜欢 Fortran90 尽管如果有帮助的话其他版本也是可能的 我的文件中有一堆数据行 可以描述为 以空格分隔 没有固定的格式 包含一个字符串 后跟 7 个数字 字符串包含正斜杠 这是一个例子 maxele OS
  • 如何防止(卸载)TypeScript 安装并引用它自己的 @types 到 AppData\Local 中

    我遇到了一个有点令人困惑的问题 似乎TypeScript正在安装自己的副本React进入它自己的全局缓存 不确定它叫什么 假设那就是它是什么 并在我的项目中引用它 具体来说 我最终得到了两个对 React 的引用 其中一个位于我的项目的根目
  • 在maven 2中的命令行上设置插件的属性

    在 maven 2 x 中 如何在命令行上而不是在 pom 或 settings xml 中该插件的 中设置插件的属性 例如 如果我正在使用mvn dependency copy dependencies 在这里看到 http maven
  • 循环系统发育树上的节点标签

    我正在尝试创建循环系统发育树 我有这部分代码 fit lt hclust dist Data 4 method complete members NULL nclus 3 color c red blue green color list
  • Asp.net core 中的条件依赖解析

    我有 2 个控制器 PayerController 和 BusinessController 两个 Controller 构造函数都将 EntityManager 作为参数 它是一个抽象类 我想根据我正在使用的控制器来解析每个管理器类 对于
  • 使用 javascript 将 png 上传到 imgur

    我正在尝试使用Javascript上传一个png to imgur http imgur com 我直接使用了 Imgur API 中的代码example http api imgur com examples 但我认为我没有正确传递 pn
  • Linux内核将写入管道的数据保存在哪里

    假设有以下简单代码 include
  • 包含任何文本的元素的量角器预期条件

    有没有办法检查元素中是否有任何文本 我已经找到了textToBePresentInElement但此函数会检查指定值 如果失败则不会返回正确的错误 我通过 API 填充该元素 并且稍后加载它 因此我希望浏览器等到元素中出现任何信息 然后检查
  • 如何通过 Xml 属性重命名类名?

    假设我有一个名为的 XML 可序列化类Song Serializable class Song public string Artist public string SongTitle 为了节省空间 也半混淆XML 文件 我决定重命名 xm
  • 导入pfx时无法导入以下密钥文件错误

    我在 stackoverflow 上彻底研究了这个问题 我看到了很多答案 但没有一个对我们有用 我们最近从 comodo 购买了一个代码签名证书 我们将使用它来签署我们的 c WPF net4 应用程序 我们已按照以下说明进行操作 然后在
  • 是否可以调试在 jni4net 中运行的 Java 程序?

    我目前正在使用 Java 库jni4net http jni4net com 在 IIS Express 上运行的 C 应用程序中 Java 库抛出异常 是否可以附加调试器来调试 Java 代码 Attempt 我尝试按照 提供的说明将以下
  • Ehcache避免将敏感数据存储到磁盘?

    我们希望使用 Ehcache 缓存不应该存储到磁盘的敏感数据 数据只能驻留在主内存中 这种数据存储在磁盘上是非法的 因此需要谨慎对待 我们已经在使用 Ehcache 无论是否带有陶土 来实现常见的缓存目的 我知道 Ehcache 提供了在主
  • Xcode 8 警告:“__textcoal_nt”部分已弃用

    我最近在 el cap 上更新到了 Xcode 8 今天早些时候我做了一个 xcode select install 还运行了brew来安装几个命令 我还更新了 Podfile 然后启动了 Xcode 8 直到现在我还没有为我正在处理的特定
  • 删除 Symfony2 表单中的表单命名空间(针对 REST API)

    我正在使用 Symfony2 设计 REST API 对于 POST 和 PUT 请求 我使用 FormType 就像是 class EmailType extends AbstractType public function buildF
  • SwiftUI 文本动画不透明度不起作用

    问题很简单 我到底如何才能获得Text正确设置动画 struct ContentView View State var foozle String var body some View VStack Spacer Text self foo
  • Java:加载重构后保存在硬盘上的对象=>“找不到类”异常:/

    我正在用java开发一个应用程序 它使用这个简单的方法定期将对象保存到硬盘上 public void save String filename try FileOutputStream fos new FileOutputStream fi