java 自定义 URLStreamHandlerFactory
最近使用layui作为javafx的表现层发现layui的字体文件在打包后无法正常加载在经过仔细排查后发现是打包后路径发生变化导致的所以就自定义了URLStreamHandlerFactory来处理无法加载的文件。static { URL.setURLStreamHandlerFactory(new CustomURLStreamHandlerFactory()); } public static class CustomURLStreamHandlerFactory implements URLStreamHandlerFactory { Override public URLStreamHandler createURLStreamHandler(String protocol) { if(local.equals(protocol)){ return new LocalStreamHandler(); } if (jar.equals(protocol)){ return new CustomJarStreamHandler(); } else { return null; } } } public static class LocalStreamHandler extends URLStreamHandler { Override protected URLConnection openConnection(URL u) throws IOException { return new CustomURLConnection(u); } } public static class CustomJarStreamHandler extends sun.net.www.protocol.jar.Handler { Override protected URLConnection openConnection(URL url) throws IOException { if(url.toString().contains(local)||url.toString().contains(app.jar!)){ return new CustomURLConnection(url); }else{ return super.openConnection(url); } } }public static class CustomURLConnection extends HttpURLConnection { private InputStream inputStream; CustomURLConnection(URL url) throws IOException { super(url); } Override public void disconnect() { if (inputStream ! null) { try { inputStream.close(); } catch (IOException e) { log.debug(e.getMessage(), e); } } connected false; } Override public boolean usingProxy() { return false; } Override public void connect() throws IOException { if (connected) { return; } inputStream loadData(CustomURLConnection.class.getClassLoader()); connected true; } Override public int getResponseCode() throws IOException { return HttpURLConnection.HTTP_OK; } Override public InputStream getInputStream() throws IOException { return inputStream; } private InputStream loadData(ClassLoader loader) { String protocol url.getProtocol(); if (protocol.equals(jar)) { String path url.getPath(); if (path.contains(local)) { byte[] response JavaScriptNative.scriptNative.getResponse(url.toExternalForm()); return new ByteArrayInputStream(response); } if (path.contains(jar://file/)) { path path.substring(path.indexOf(jar://file) jar://file.length() 1); try { path URLDecoder.decode(path, UTF-8); return Files.newInputStream(Paths.get(path)); } catch (IOException e) { log.debug(e.getMessage(), e); } return new ByteArrayInputStream(new byte[0]); } path path.substring(path.indexOf(app.jar!) app.jar!.length() 1); return loader.getResourceAsStream(path); } byte[] response JavaScriptNative.scriptNative.getResponse(url.toExternalForm()); return new ByteArrayInputStream(response); } }

相关新闻

2026毕业神器实测|Okbiye全套论文功能详解!从写作到答辩一站式通关

2026毕业神器实测|Okbiye全套论文功能详解!从写作到答辩一站式通关

对于高校学生来说,毕业论文是毕业必经的核心关卡。从选题开题、文稿撰写、文献搜集、排版降重,到最终查重核验、答辩展示,整套流程繁琐复杂、细节繁多,耗费大量时间精力。 2026年高校全面实行查重AI痕迹双检机制,传统…

2026/7/26 19:38:23 阅读更多 →
告别文献焦虑✅Okbiye千万文献库+学术翻译!搞定论文参考文献、外文研读全流程

告别文献焦虑✅Okbiye千万文献库+学术翻译!搞定论文参考文献、外文研读全流程

写论文最磨人的两大难题,找文献找不到、外文文献看不懂。 很多同学开题卡文献、综述卡素材:苦苦搜遍各大平台,文献老旧过时、数量稀少,贴合选题的核心资料寥寥无几;好不容易找到高质量SCI、EI外文文献,通篇…

2026/7/26 0:40:17 阅读更多 →
ROR1靶向ADC药物:突破性进展与临床价值

ROR1靶向ADC药物:突破性进展与临床价值

1. 项目概述:ADC药物与ROR1靶点的突破性进展 上周行业里最振奋的消息莫过于华东医药宣布其ROR1靶向ADC药物获得FDA孤儿药资格认定。作为深耕肿瘤药物研发多年的从业者,我第一时间调取了公开资料进行研究。这个进展不仅意味着国内药企在ADC赛道实现了从跟…

2026/7/26 4:35:34 阅读更多 →

最新新闻

如何利用Subdominator的73个数据源?从免费到API密钥源的全面解析

如何利用Subdominator的73个数据源?从免费到API密钥源的全面解析

如何利用Subdominator的73个数据源?从免费到API密钥源的全面解析 【免费下载链接】Subdominator SubDominator helps you discover subdomains associated with a target domain efficiently and with minimal impact for your Bug Bounty 项目地址: https://gitc…

2026/7/27 13:39:11 阅读更多 →
TMS570锁相环配置实战:从原理到EMC优化的嵌入式时钟系统设计

TMS570锁相环配置实战:从原理到EMC优化的嵌入式时钟系统设计

1. 项目概述与核心价值在嵌入式系统开发,尤其是汽车电子、工业控制这类对实时性和可靠性要求极高的领域,系统时钟的稳定与精确是基石中的基石。想象一下,你设计的控制器需要在微秒级内响应传感器信号、驱动执行器,或者通过高速总线…

2026/7/27 13:39:11 阅读更多 →
5分钟掌握PoeCharm汉化版:流放之路角色构建终极指南

5分钟掌握PoeCharm汉化版:流放之路角色构建终极指南

5分钟掌握PoeCharm汉化版:流放之路角色构建终极指南 【免费下载链接】PoeCharm Path of Building Chinese version 项目地址: https://gitcode.com/gh_mirrors/po/PoeCharm 还在为《流放之路》复杂的角色构建而头疼吗?PoeCharm汉化版作为Path of …

2026/7/27 13:39:11 阅读更多 →
如何在Ember项目中快速集成ember-truth-helpers?5分钟入门教程

如何在Ember项目中快速集成ember-truth-helpers?5分钟入门教程

如何在Ember项目中快速集成ember-truth-helpers?5分钟入门教程 【免费下载链接】ember-truth-helpers Ember HTMLBars Helpers for {{if}} & {{unless}}: not, and, or, eq & is-array 项目地址: https://gitcode.com/gh_mirrors/em/ember-truth-helpers …

2026/7/27 13:39:11 阅读更多 →
PyTorch for Numpy users:从入门到精通的终极转换指南

PyTorch for Numpy users:从入门到精通的终极转换指南

PyTorch for Numpy users:从入门到精通的终极转换指南 【免费下载链接】pytorch-for-numpy-users PyTorch for Numpy users. https://pytorch-for-numpy-users.wkentaro.com 项目地址: https://gitcode.com/gh_mirrors/py/pytorch-for-numpy-users PyTorch f…

2026/7/27 13:39:11 阅读更多 →
SpringBoot+Vue3实现高校人脸识别门禁车辆管理系统

SpringBoot+Vue3实现高校人脸识别门禁车辆管理系统

1. 项目概述:高校门禁车辆管理系统的智能化升级高校校园作为半开放公共场所,车辆与人员进出管理一直是安全工作的重点难点。传统门禁系统依赖人工核验或IC卡识别,存在代刷、冒用等安全隐患。我们团队基于SpringBootVue3开发的人脸识别门禁车辆…

2026/7/27 13:38:11 阅读更多 →

日新闻

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于SpringBoot的社区智能垃圾管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/27 0:00:54 阅读更多 →
SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

SPI实战指南:从时钟模式到寄存器配置,解决嵌入式通信难题

1. 项目概述:从寄存器手册到实战指南 如果你手头有一份类似德州仪器(TI)TMS320x240xA系列DSP的SPI模块技术手册,看着里面密密麻麻的寄存器位定义、时序图和公式,是不是感觉头大?这份资料虽然权威&#xff0…

2026/7/27 0:00:54 阅读更多 →
【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

【JAVA毕设源码分享】基于springboot的水果购物管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/27 0:00:54 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/27 4:33:59 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/27 6:31:56 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/27 4:01:12 阅读更多 →

月新闻