java - 是否有可以独立使用的类似 Tomcat 的类加载器?

标签 java classpath osgi classloader encapsulation

我正在使用 Java 类应用程序服务器 (Smartfox),它可以运行多个应用程序(“扩展”),但有一个非常不方便的类路径设置,以及尝试使用时的问题SLF4J.

为了解决这个问题,我想将我的应用程序包装在它们自己的类加载器中。这样一个包含类加载器应该很像 Tomcat 的,因为它

  • 可以从包含 JAR 的目录加载类。
  • 优先选择自己类路径中的类,而不是父类中的类

是否有某个库具有这样的类加载器,我可以在我的项目中“拖放”?如果没有,自己制作会不会很困难?有什么已知的陷阱吗?

最佳答案

OSGi (和其他模块系统)旨在完全处理此类问题。

乍一看,这可能看起来有点矫枉过正,但我​​认为您将很快重新实现 OSGi 已经为您完成的重要部分。

Equinox例如,是 Eclipse 使用的 OSGi 实现。

关于java - 是否有可以独立使用的类似 Tomcat 的类加载器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7645707/

相关文章:

java - 使用 Hibernate 5 和 Spring 4 的程序化 SchemaExport/SchemaUpdate

tomcat - war的依赖在类路径中寻找文件

java - maven 将本地类目录添加到模块的类路径

java - OSGI 包的命令行参数和 JVM 参数

osgi - @Service用于在CQ中创建服务,那么BundleContext.registerService方法有什么用呢?

java - 什么是更好的 ?使用双反斜杠 ('\\' ) 作为文件分隔符或 Files.separator 来删除 O.S.在 Java 中处理文件时的依赖性

java - 将 CopyOnWriteArrayList 复制到经典 ArrayList,如何?

Java程序在IDE中工作,但编译后(eclipse)给出java.lang.NoClassDefFoundError

java - 调用 session.getWorkspace().getQuery() 会导致错误

java - Spring 启动 OAuth2 : How to retrieve user token info details