You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java如何定位并读取Maven依赖Jar包中指定包内的.ser文件

读取Maven依赖Jar包中.ser文件的解决方案

直接通过import test.testnext.*;无法访问.ser文件,因为import仅用于导入Java类,而.ser是资源文件,需要通过类加载器来定位读取。以下是两种可行的实现方式:

方法一:使用类加载器读取全路径资源

通过类加载器的getResourceAsStream方法,传入对应Jar内的资源路径(用斜杠/分隔包层级):

// 替换YourCurrentClass为你当前编写的类名
InputStream inputStream = YourCurrentClass.class.getClassLoader()
    .getResourceAsStream("test/testnext/testSER.ser");

if (inputStream != null) {
    // 使用try-with-resources自动关闭流
    try (ObjectInputStream ois = new ObjectInputStream(inputStream)) {
        Object targetObj = ois.readObject();
        // 在这里处理读取到的序列化对象
    } catch (IOException | ClassNotFoundException e) {
        e.printStackTrace();
    }
}

方法二:利用同包类读取相对路径资源

如果.ser文件和Jar中的testclass.class处于同一包下,可以直接通过该类的getResourceAsStream方法读取相对路径:

InputStream inputStream = testclass.class.getResourceAsStream("testSER.ser");

// 后续的流处理和对象读取逻辑同方法一

注意事项

  • 确认Jar包内的.ser文件路径正确:对应包test.testnext的资源路径应为test/testnext/testSER.ser
  • 确保依赖的Jar包在打包时已正确包含这些.ser资源文件
  • 必须使用流的关闭机制(推荐try-with-resources)避免资源泄漏

内容的提问来源于stack exchange,提问作者tobias.engler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 20:45:14