• 获取类路径中含有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数组了;
    
        }
    }
  • 相关阅读:
    ES6新特性:使用export和import实现模块化
    常见Linux/Unix开发辅助命令什锦
    Spark高速上手之交互式分析
    Lua中的元表与元方法
    explicit 构造函数
    【排序】基数排序(计数排序、桶排序)
    拓展训练—心得体会
    poj3411--Paid Roads(bfs+状压)
    点击单选button后的文字就可以选定相应单选button
    hdu 2349 最小生成树
  • 原文地址:https://www.cnblogs.com/stono/p/9044315.html
Copyright © 2020-2023  润新知