- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我们目前正在调查 OneJar 在我们的应用程序中的使用(出于多种原因),但我们的应用程序使用了许多自定义 URLClassloader
来加载应用程序扩展。
当捆绑为“OneJar”Jar 时,我们会得到 ClassNotFound
异常。有问题的类驻留在捆绑的 Jar 中,我们只是依靠类加载器机制来解决父/子关系。
也就是说。我们有一个通用的 interface
存储在捆绑的 Jar 中(应该在父类加载器上下文中)。扩展实现了这个接口(interface)
(允许我们调用扩展)并依赖子类加载器使用父类加载器的资源查找功能。
有没有人对此有任何经验或阐明了我们如何解决它。
我会对其他类似机制感兴趣(用于将我们的库 Jar 捆绑到单个 Jar 资源中,不需要使用将所有内容和 Jar 解压到单个文件中)
最佳答案
我发现我对类加载器的创建方式做了一些假设。
我假设类加载器会使用它的类加载器作为它的父级(即 getClass().getClassLoader()),但事实并非如此
相反,它使用的是 SystemClassLoader
。这意味着当子类加载器寻找共享接口(interface)时,它找不到(因为它正在查看 SystemClassLoader
而不是 OneJar 类加载器)。
我通过将 CustomClassLoader.class.getClassLoader()
添加到自定义类加载器的构造函数中来纠正此问题
关于java - OneJar 和动态类加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11962387/
我们目前正在调查 OneJar 在我们的应用程序中的使用(出于多种原因),但我们的应用程序使用了许多自定义 URLClassloader 来加载应用程序扩展。 当捆绑为“OneJar”Jar 时,我们
我一直认为URL可以通过这个constructor来组成,以及类似的东西 new URL(new URL("file:/foo/bar/"), "images/a.png") 我明白了 file:/f
我正在使用reflections与 onejar maven plugin ,并且我在运行生成的 jar 时遇到问题: 20204 [main] ERROR org.reflections.Refle
我从 this page 复制到我的 pom.xml 文件代码,在我输入控制台 mvn package 后,它向我显示了这种错误 [ERROR] Failed to execute goal org.
我正在使用一个 jar 来打包我的程序。我在 src/main/resources 中有资源。 maven-resources-plugin 正确地将资源复制到jar 中,但是onejar 生成的ja
我已经使用这三个开源工具来打包我的 java 应用程序,但它们现在看起来都像废弃的软件。这三个都是非常好的软件。现在有哪些选择? (或者使用 Java 进行桌面应用开发不再是应用开发人员构建和维护这些
我认为这是微不足道的,但我已经到了最后期限,所以如果这是一个愚蠢的问题,我深表歉意。 我正在使用 Dr Tuffs OneJar for Maven 构建一个 fat jar,其中包括我的所有依赖项等
使用 C3P0、OneJar 和 MySQL 时出现死锁C3P0设置如下 pooledDataSource=new ComboPooledDataSource(); set d
有没有办法使用 onejar-maven-plugin 将任意类路径条目添加到 JAR 文件 list ? 我找到了去 configure maven-jar-plugin to do this 的路
我正在尝试在 scala/java 项目上使用 sbt 构建一个 jar 文件。 除log4J配置文件外,所有项目均已正确构建和打包。 我没有找到如何将它包含在最终 jar 的类路径中。 我试图将它添
我是 java web start 的新手。我正在尝试使用 web start 来吃一 jar 午餐。但我收到此错误: java.lang.IllegalArgumentException: Unab
我是 Maven 新手,在从 pom.xml 导入现有 Maven 项目时,我发现出现以下错误。 找不到 org.dstovall:onejar-maven-plugin-jar:1.4.4。我应该删
我的项目直接依赖于commons-configuration (1.6),但也以传递方式拉取:commons-beanutils-core (1.8.0) 和 commons-collections
我是一名优秀的程序员,十分优秀!