iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java使用Class.forName加载外部Jar类文件的问题怎么解决
  • 227
分享到

Java使用Class.forName加载外部Jar类文件的问题怎么解决

2023-07-02 11:07:31 227人浏览 安东尼
摘要

本篇内容介绍了“Java使用Class.forName加载外部jar类文件的问题怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!故事背

本篇内容介绍了“Java使用Class.forName加载外部jar类文件的问题怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

故事背景

在一个框架叫 magic-api 里,可以低代码的方式写代码,动态编译执行,但是要想加载一些 import 类进来,需要前提在项目里加载 jar 完成后才可以 import,那么这样每来一个新的 class,就都需要重新加载 class 到项目,然后打包项目,再 import……非常繁琐!!!

当然这边还要提到 magic 的一个大概执行过程,拿到一份源码时,头文件上的 import 会经过源码里 Class.forName 进行加载到内存,有人会说,那直接用 URLClassLoader 不就行了,的确可以,但是这样需要改源码了,也比较繁琐,所以为了不该源码,怎么去兼容又方便的解决这个问题呢?

解决方案

那么就产生了一个问题,是否有一种办法可以直接通过外部 jar 直接加载 class 到 JVM 内存呢?

这里大概思路是用 URLClassLoader 来接收文件,然后 Class.forName 就能在项目范围内拿到该类去加载到内存,就是这样。

顺便提一句:那 magic-api 框架如何兼容这个问题呢,因为需要用到 URLClassLoader,其实在 magic-api 执行拿到的源码前,提供了一个拦截器,我们可以把 URLClassLoader 放到那边去做即可!

public class ClassLoadTest {     public void test() {        // 外部 jar 所在位置        String path = "file:C:\\Users\\Boomni_Sun\\Desktop\\chinadaas-magic-api-0.3.1-SNAPSHOT.jar";        URLClassLoader urlClassLoader = null;        try {            // 通过URLClassLoader加载外部jar            urlClassLoader = new URLClassLoader(new URL[]{new URL(path)});            Class<?> cls = Class.forName("com.chinadaas.magic.api.utils.MyTest", false, urlClassLoader);            Object instance = cls.newInstance();        } catch (Exception e) {            e.printStackTrace();        } finally {            // 卸载关闭外部jar            try {                urlClassLoader.close();            } catch (IOException e) {                System.out.println("关闭外部jar失败:" + e.getMessage());            }        }    }}

“Java使用Class.forName加载外部Jar类文件的问题怎么解决”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: Java使用Class.forName加载外部Jar类文件的问题怎么解决

本文链接: https://www.lsjlt.com/news/341665.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java使用Class.forName加载外部Jar类文件的问题怎么解决
    本篇内容介绍了“Java使用Class.forName加载外部Jar类文件的问题怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!故事背...
    99+
    2023-07-02
  • Java使用 Class.forName 加载外部 Jar 里的类文件
    故事背景 在一个框架叫 magic-api 里,可以低代码的方式写代码,动态编译执行,但是要想加载一些 import 类进来,需要前提在项目里加载 jar 完成后才可以 import...
    99+
    2024-04-02
  • 怎么解决css加载外部字体乱码问题
    本篇内容介绍了“怎么解决css加载外部字体乱码问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
  • SpringBoot项目打成jar后怎么加载外部配置文件
    本篇内容介绍了“SpringBoot项目打成jar后怎么加载外部配置文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、applicati...
    99+
    2023-07-05
  • 使用Maven镜像怎么解决jar下载慢的问题
    使用Maven镜像怎么解决jar下载慢的问题?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。修改Maven目录中的conf/settings.xml找到mirro...
    99+
    2023-05-31
    maven jar
  • 解决jupyter加载文件失败的问题
    遇到个小白常见的问题,发现度娘里面没有记录,翻墙谷歌了下,解决问题,在此写个说明。 事情起因: 在jupyter notebook中导入文件时发生了错误: %load p2_te...
    99+
    2024-04-02
  • springboot启动不加载bootstrap.yml文件的问题怎么解决
    这篇文章主要介绍“springboot启动不加载bootstrap.yml文件的问题怎么解决”,在日常操作中,相信很多人在springboot启动不加载bootstrap.yml文件的问题怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简...
    99+
    2023-06-22
  • java的内部类和外部类怎么使用
    本篇内容介绍了“java的内部类和外部类怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、为何使用内部类内部类提供了更好的封装,只有...
    99+
    2023-06-22
  • Java找不到或无法加载主类问题怎么解决
    Java找不到或无法加载主类问题通常是由于以下几个原因引起的:1. 类路径错误:请确保你的类路径(classpath)设置正确。可以...
    99+
    2023-08-12
    Java
  • 解决java项目jar打包后读取文件失败的问题
    java项目jar打包后读取文件失败 在本地项目读取文件时 this.getClass().getClassLoader().getResource("").getPath()+...
    99+
    2024-04-02
  • 怎么解决.cuda()加载用时很长的问题
    这篇文章主要介绍怎么解决.cuda()加载用时很长的问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!方法一:pip install --upgrade --force-reinstal...
    99+
    2023-06-15
  • vue部署后静态文件加载404怎么解决
    这篇“vue部署后静态文件加载404怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue部署后静态文件加载404怎么...
    99+
    2023-07-06
  • Java错误问题:找不到或无法加载主类的解决
    目录Java错误:找不到或无法加载主类方法一方法二总结Java错误:找不到或无法加载主类 小编表示WTF???为什么找不到主类dictionary2_0???找不到是什么原因???...
    99+
    2023-03-01
    Java错误 找不到主类 无法加载主类
  • vue怎么解决首页加载慢的问题
    这篇文章主要讲解了“vue怎么解决首页加载慢的问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue怎么解决首页加载慢的问题”吧!1.路由懒加载{   &nb...
    99+
    2023-06-29
  • vue异步组件与组件懒加载问题怎么解决
    本篇内容主要讲解“vue异步组件与组件懒加载问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“vue异步组件与组件懒加载问题怎么解决”吧!vue异步组件与组件懒加载在写项目的时候,需要动...
    99+
    2023-06-29
  • asp.net中如何解决引入外部js文件的中文乱码问题
    这篇文章给大家分享的是有关asp.net中如何解决引入外部js文件的中文乱码问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在asp.net中时常需要调用js代码,如果js写在asp.net中,一般是不会出现乱...
    99+
    2023-06-03
  • Java中properties文件编码问题怎么解决
    本文小编为大家详细介绍“Java中properties文件编码问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java中properties文件编码问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知...
    99+
    2023-06-29
  • java读写ini文件、FileOutputStream问题怎么解决
    这篇文章主要介绍“java读写ini文件、FileOutputStream问题怎么解决”,在日常操作中,相信很多人在java读写ini文件、FileOutputStream问题怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作...
    99+
    2023-07-06
  • Java中Integer使用的问题怎么解决
    这篇“Java中Integer使用的问题怎么解决”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java中Integer使用的...
    99+
    2023-07-04
  • 怎么解决php下载文件时不完整问题
    这篇文章主要讲解了“怎么解决php下载文件时不完整问题”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么解决php下载文件时不完整问题”吧!php下载文件时不完整的解决办法:1、找到ngin...
    99+
    2023-06-25
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作