获取类路径中含有beans.xml的jar包名称
获取类路径中含有beans.xml的jar包名称
package com.stono; import java.io.File; import java.io.IOException; import java.net.JarURLConnection; import java.net.URL; import java.util.Enumeration; import java.util.LinkedHashSet; import java.util.Set; import java.util.jar.JarFile; public class LoadJars { public static void main(String[] args) throws IOException { ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader(); System.out.println(contextClassLoader); Enumeration<URL> resources = contextClassLoader.getResources("META-INF/beans.xml"); // MANIFEST.MF Set<String> jarNames = new LinkedHashSet<>(); String separator = File.separator; System.out.println(separator); while (resources.hasMoreElements()) { URL url = resources.nextElement(); System.out.println(url); String protocol = url.getProtocol(); System.out.println(protocol); // 竟然是jar if ("jar".equals(protocol)) { JarFile jarFile = ((JarURLConnection) url.openConnection()).getJarFile(); String name = jarFile.getName(); System.out.println(name); if (name.indexOf(separator) == -1) { jarNames.add(name); continue; } String jarName = name.substring(name.lastIndexOf(separator) + separator.length(), name.length()); jarNames.add(jarName); } } System.out.println(jarNames); // toArray还可以输入参数; System.out.println(jarNames.toArray(new String[]{})); System.out.println(jarNames.toArray()); // 这个就是object数组了; } }
分类:
java
· AI与.NET技术实操系列:使用Catalyst进行自然语言处理
· 分享一个我遇到过的“量子力学”级别的BUG。
· Linux系列:如何调试 malloc 的底层源码
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 历时 8 年,我冲上开源榜前 8 了!
· 物流快递公司核心技术能力-海量大数据处理技术
· 四大AI编程工具组合测评
· 关于能否用DeepSeek做危险的事情,DeepSeek本身给出了答案
· 如何在 Github 上获得 1000 star?
2015-05-16 MyBatis 多个查询条件的传递
2015-05-16 MyBatis 的Mapper中有小于号的处理