![](/img/trans.png)
[英]In JBoss application server, how do I make sure that all modules in a deployment use the same Classloader for a jar library?
[英]how to make sure that the temporary jar file is accessible by the classloader
我有一个使用URLCLassLoader的自定义jar类加载器。 我必须从数据库读取jar内容并加载它们。 有几个与此有关的问题。
我可以以某种方式从字节流中加载所有类,而不是先从数据库中将jar内容保存到临时文件,然后将file:// URL提供给URL类加载器吗?
如果对上述问题的回答是“是”,则类加载器将确保立即从字节流中读取所有类文件和资源,以避免以后发生ClassNotFoundError。
如果答案是Q1。 没有。 然后按照我的方法,我从数据库字节流中创建了一个临时 .jar,并为URLClassloader指定了file:// URL。 URLClassloader是否确保该URL上的临时文件在使用之前不会被破坏,以避免ClassNotFoundException?
也欢迎对上述总体问题有任何其他解决方案。 提前致谢。
您可以使用自己的URLStreamHandler
构造一个URL
。 但是, URLClassLoader
常规实现会将内容保存到临时文件并使用JarFile
API。
如果创建一个临时文件,则在UNIX系统上,您应该能够在打开后将其删除。 在Windows上,您需要保留它,直到完成类加载器为止。 在Java SE 7中,您可以关闭URLClassLoader
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.