`
ylsn1982
  • 浏览: 3900 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

查找Java类来源jar包

    博客分类:
  • Java
 
阅读更多

 @Test

  public void getClassLocation() throws Exception {

    Class cls = DefaultListableBeanFactory.class;

    URL rt = null;

    final String clsResource = cls.getName().replace(".", "/").concat(".class");

    final ProtectionDomain pd = cls.getProtectionDomain();

    if (pd != null) {

      final CodeSource cs = pd.getCodeSource();

      if (cs != null) {

        rt = cs.getLocation();

      }

      if (rt != null) {

        if ("file".equals(rt.getProtocol())) {

          if (rt.toExternalForm().endsWith(".jar") || rt.toExternalForm().endsWith(".zip")) {

            rt = new URL("jar:".concat(rt.toExternalForm()).concat("!/").concat(clsResource));

          } else if ((new File(rt.getFile()).isDirectory())) {

            rt = new URL(rt, clsResource);

          }

        }

      }

    }

 

    if (rt == null) {

      final ClassLoader loader = cls.getClassLoader();

      rt = loader != null

          ? loader.getResource(clsResource)

          : ClassLoader.getSystemResource(clsResource);

    }

 

    System.err.println(rt);

 

  }

分享到:
评论

相关推荐

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

     《Java开发实战1200例》分为I、II两卷共计1200个例子,包括了开发中各个方面最常用的实例,是目前市场上实例最全面的开发类图书;书中实例来源于多位工程师的多年积累,具有很强的实用性。 本书是第II卷,以开发...

    pi-oi:快速查找Raspberry Pi的本地IP地址

    使用以下命令运行pi-oi: java -jar pi-oi.jar 介绍 Raspberry Pi机器是我今年最有趣的东西。 为什么会很有趣? 我认为,由于它很小且非常强大,因此它可以运行以我喜欢的语言(例如Java,Javascript(Nodejs),...

    新版Android开发教程.rar

    � Google 提供了一套 Java 核心包 (J2SE 5,J2SE 6) 的有限子集,尚不承诺遵守 Java 任何 Java 规范 , 可能会造 成J ava 阵营的进一步分裂。 � 现有应用完善度不太够,需要的开发工作量较大。--------------------...

    databaseflow:一个自以为是的现代数据库界面

    数据库流 在本地或共享服务器上运行,Database Flow可帮助您使用SQL和GraphQL... 运行java -jar databaseflow.jar 。 如果您是个大个子,则可以克隆存储库并在项目根目录中执行sbt 。 来源 演示版 示例导出 执照 该项

    jndie:简单的JNDI仿真器

    将jndie.jar(以及其他依赖库,例如commons-digester和commons-beanutils)添加到您的类路径中。 或使用Maven:com.devx jndie 1.1编译 将“ -Djava.naming.factory.initial = com.devx.naming.MockContextFactory...

    Android-SDK:用于Android的Navigine SDK开发您自己的室内导航应用

    Android的公共存储库中的文件为: Android的Navigine演示应用程序的来源Navigine SDK for Android以JAR文件的形式有用的链接请参阅以获取完整的下载列表,有用的材料,有关公司的信息,等等。 与Navigine获得完全...

    gradle-single-module-samples:Gradle 单模块示例

    Gradle 单模块示例 这是 Gradle 单模块的示例。 概述 ...来源-jar javadoc-jar Jar 任务 执照 显现 报告 测试 可可 格纹 查找错误 国家社会保障局 J依赖 PMD 持续专业发展 html依赖报告 构建仪表板

    duckdns-mirror:DuckDNS DDNS服务器代码

    该来源由duckdns.org的Steven于20180513提供,可从。 DuckDNS是一项出色的服务,我对它们提供的服务感到非常满意! 当他们决定将整个服务器堆栈代码发布为GPL3时,我感到非常兴奋!介绍这是一个servlet项目。在...

    网管教程 从入门到精通软件篇.txt

    CLASS:Java类文件 CLP:Windows 剪贴板文件 CLL:Crick Software Clicker文件 CLS:Visual Basic类文件 CMD:Windows NT,OS/2的命令文件;DOS CD/M命令文件;dBASEⅡ程序文件 CPI:Microsoft MS-DOS代码页...

Global site tag (gtag.js) - Google Analytics