当前位置: 首页 > news >正文

毕业设计做网站 答辩会问什么问题临沂做百度网站软件公司

毕业设计做网站 答辩会问什么问题,临沂做百度网站软件公司,深圳网站建设哪家好,建设网站纳什么税一、简述 Maven项目通过package打成jar包后,jar包中包含所有依赖lib文件。本文介绍了两种方式解析嵌套jar中的class文件,一种是通过spring-boot-loader包JarFileArchive,另一种是util包中JarFile。 二、JarFileArchive方式 1.spring-boot-…

一、简述

Maven项目通过package打成jar包后,jar包中包含所有依赖lib文件。本文介绍了两种方式解析嵌套jar中的class文件,一种是通过spring-boot-loader包JarFileArchive,另一种是util包中JarFile。

二、JarFileArchive方式

1.spring-boot-loader依赖引入

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-loader</artifactId><version>2.2.4.RELEASE</version>
</dependency>

 2.demo案例

   public static void main(String args[]) throws Exception {String jarPath = "C:\\Users\\root\\Desktop\\make-test.jar";// 方案一:spring-boot-loaderlong start1 = System.currentTimeMillis();getClassInfoByJarLib(jarPath);long end1 = System.currentTimeMillis();log.info("收集所有lib类ClassInfo,花费时间={}",(end1-start1));} public static void getClassInfoByJarLib(String jarPath) {String filePath = "file:/"+ URLDecoder.decode(jarPath, StandardCharsets.UTF_8).replaceAll("\\\\","/")+"!/";String rootJarPath = "jar:"+ filePath;try {JarFileArchive jarFileArchive = new JarFileArchive(new Handler().getRootJarFileFromUrl(new URL(rootJarPath)));//getNestedArchives获取嵌套的jar等文件,参数是个EntryFilter,过滤条件jarFileArchive.getNestedArchives(entry -> entry.getName().startsWith("BOOT-INF/lib/") && entry.getName().endsWith(".jar")).forEach(archive -> {archive.iterator().forEachRemaining(entry -> {String entryName = entry.getName();// 过滤嵌套jar包中字节码文件if (entryName.endsWith(".class")) {String className = entryName.replace('/', '.').replace(".class", "");log.info("className:{}",className);}});});} catch (IOException e) {log.error("解析嵌套jarLib中ClassInfo异常,jarPath={}",jarPath,e);throw new RuntimeException(e);}}

三、JarFile方式

1.demo案例 

   public static void main(String args[]) throws Exception {String jarPath = "C:\\Users\\root\\Desktop\\make-test.jar";// 方案二:JarFilelong start2 = System.currentTimeMillis();processJar(jarPath);long end2 = System.currentTimeMillis();log.info("收集所有lib类ClassInfo,花费时间={}",(end2-start2));} private static void processJar(String jarPath){try (JarFile jarFile = new JarFile(new File(jarPath))) {jarFile.stream().parallel()// 过滤出所有符合要求的jar包.filter(entry -> !entry.isDirectory() && entry.getName().startsWith("BOOT-INF/lib/") && entry.getName().endsWith(".jar")).forEach(entry -> processNestedJar(jarFile, entry.getName()));} catch (IOException e) {log.error("解析嵌套jarLib中ClassInfo异常,jarPath={}",jarPath,e);throw new RuntimeException(e);}}private static void processNestedJar(JarFile jarFile, String entryName){// 处理嵌套jar文件try (InputStream nestedJarStream = jarFile.getInputStream(jarFile.getJarEntry(entryName));JarInputStream jarInputStream = new JarInputStream(nestedJarStream)) {JarEntry nestedEntry;while ((nestedEntry = jarInputStream.getNextJarEntry()) != null) {if (nestedEntry.isDirectory()) {continue;}String nestedEntryName = nestedEntry.getName();if (!nestedEntryName.endsWith(".class")) {continue;}try {String className = nestedEntryName.replace('/', '.').replace(".class", "");log.info("className:{}",className);} catch (Exception e) {log.error("目标类={}查找失败",nestedEntryName,e);throw new RuntimeException(e);}}} catch (IOException e) {log.error("目标类={}查找失败",entryName,e);throw new RuntimeException(e);}}

四、两种方式对比

实测项目make-test.jar中所有依赖lib约200个,其中所有class字节码文件约7万多个。方案JarFileArchive约1.5s全部解析,方案JarFile约6s全部解析。

http://www.yayakq.cn/news/481160/

相关文章:

  • 唐山网站建设500元网站自然排名
  • 兰州网站建设王道下拉強网络营销推广方法研究
  • 网站建设业务拓展校园推广活动
  • 网站建设 计入哪个科目网站的音乐链接怎么做
  • 网站建设论文答辩自述素材网站怎么推广
  • 网站建设网页制作江西网站开发公司
  • 网站验证码怎么做江门seo培训
  • 模板下载免费网站网站备案怎么取消
  • 商城网站怎么自己搭建万盛经开区规划建设局网站
  • 汽车网站建设方案电脑网站模版
  • 番禺网站建设公司网站建设和推广电话销售话术
  • 婚纱影楼网站上海网页制作模板
  • 站长工具黄西安房产网签查询官网
  • 天机seo一流的常州网站优化
  • 常州市建设工程网站修改wordpress 表格
  • 兰州网站建设招聘信息手机网站开发最好用的框架
  • 宜昌市夷陵区建设局网站余姚做网站62752762
  • 网站开发应财务如何记账技术支持 贵阳贵阳网站建设
  • 自动生成网站地图的工具小程序网站做多大尺寸
  • 网站配色 要用什么原则wordpress 文章概要
  • 物联网小程序开发网页优化哪家公司做得好
  • 网站运营维护措施有哪些动漫制作专业专升本
  • 网站数据抓取怎么做网站关键词密度太高怎么处理
  • 腐女喜欢做的网站wordpress文章分页标题
  • ppt下载模板免费网站做网站成功案例
  • 做蔬菜的网站有哪些企业建站套餐
  • flash网站需要改变制作自己的网站 域名怎么弄
  • 门户定制网站建设公司工商注册名称核准
  • 南山网站-建设深圳信科视频链接生成
  • 专业的营销型网站企业文化铜陵市建设工程管理局网站