【问题标题】:System class loader in Play Framework 2Play Framework 2 中的系统类加载器
【发布时间】:2014-06-24 01:02:25
【问题描述】:

我使用的是 Play 2.2.2,并且我有一个外部 jar,它尝试从同一个 jar 的根目录加载 XML 资源。它使用System.class.getClassLoader().getResource("/Blabla.xml") 这样做。 这失败了,因为显然 Play 有一个奇怪的类加载器层次结构:ReloadableClassLoader 和几个父级。此层次结构不包括系统类加载器,也不包括扩展和引导类加载器。

这怎么可能?

我发现使用 ClassLoader.getSystemClassLoader() 会返回一个类似于标准类加载层次结构的类加载器层次结构。但我不想碰上面提到的外部罐子,让System.class.getClassLoader().getResource("/Blabla.xml")工作。

如何让System.class.getClassLoader().getResource("/Blabla.xml") 返回标准系统类加载器?

【问题讨论】:

    标签: java playframework-2.0 classloader


    【解决方案1】:

    由于开发模式下的编译-重载机制,Play 的类加载器设置相当复杂。与其尝试使用普通的System.class.getClassLoader(),不如使用built-in API methods 来获取资源或类加载器。

    【讨论】:

      猜你喜欢
      • 2022-01-22
      • 1970-01-01
      • 2012-07-08
      • 1970-01-01
      • 2015-01-04
      • 1970-01-01
      • 2017-03-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多