Questions tagged «classloader»

类加载器是一个对象,负责以Java加载类。

3
OSGi,Java模块化和拼图
因此,截至昨天早上,我对OSGi到底是什么一无所知。OSGi只是一个流行语,我不断看到它反复出现,因此我终于拨出一些时间来仔细研究它。 实际上,它看起来很酷,因此,我想(从记录开始)说我在任何方面都不是反OSGi的,这也不是“打击OSGi”的问题。 归根结底,似乎OSGi实质上已经解决了Java Modularity上的JSR 277,该文件认识到JAR文件规范存在缺陷,在某些特殊情况下可能导致名称空间解析和类加载问题。OSGi还做很多其他很酷的事情,但是据我所知,这是它最大的吸引力(或其中之一)。 对我来说-作为一个相当新的Java EE开发人员(现在是几年),我们真是令人难以置信,我们现在是2011年,目前生活在Java 7时代,而这些类加载问题仍然存在。尤其是在企业环境中,其中一台应用程序服务器上可能有数百个JAR,其中许多依赖于彼此的不同版本,并且全部同时运行(或多或少)。 我的问题: 就像我对OSGi一样感兴趣,并且我想开始学习它,以了解它在我的项目中可能/在什么地方有用,所以我只是没有时间坐下来学习这么大的东西,至少现在。 那么,出现这些问题时,非OSGi开发人员该怎么办?当前存在哪些Java(Oracle / Sun / JCP)解决方案?为什么从J7切割拼图?社区对Jigsaw明年在J8中实施的信心如何?即使它不是Java平台的一部分,也可以为您的项目获取Jigsaw吗? 我想我想问的是恐慌,阴谋和面部手掌的结合。现在,我终于了解了OSGi是什么,我只是不“了解”像Jigsaw这样的东西花了20多年的时间才能实现,然后如何从发行版中解决这个问题。这似乎很基本。 而且,作为开发人员,对于OSGi,我也对自己的解决方案感到好奇。 另外,请注意:我知道这不是一个“ 纯粹的编程 ”类型的问题,但是在你们中的一些人鼻子变形之前,我想声明(再次记录),我故意将这个问题放在上面。所以。这是因为我对同胞SOers表示最大的敬意,我正在寻找我每天都潜伏在这里的一些“ IT之神”的体系结构级别的答案。 但是,对于绝对坚持 SO问题带有某些代码段的那些人: int x = 9; (感谢任何可以使用此OSGi / Jigsaw / classloader / namespace / JAR地狱东西的人!)


9
什么时候执行该类的静态块?
我有2个罐子,我们称它们为a.jar和b.jar。 b.jar取决于a.jar。 在a.jar中,我定义了一个类,我们称它为StaticClass。在StaticClass中,我定义了一个静态块,调用了一个名为“ init”的方法: public class StaticClass { static { init(); } public void static init () { // do some initialization here } } 在b.jar中,我有一个main,因此在main中,我希望已经调用了init()方法,但实际上没有。我怀疑这是因为jvm尚未加载StaticClass,谁能告诉我 我的结论正确吗? 是什么触发了jvm加载类? 如何获得自动执行的静态块? 谢谢

7
是否可以在运行时从Android应用程序动态加载库?
有什么方法可以使Android应用程序在运行时下载和使用Java库? 这是一个例子: 想象一下,应用程序需要根据输入值进行一些计算。应用程序要求这些输入值,然后检查所需的Classes或Methods是否可用。 如果没有,它将连接到服务器,下载所需的库,然后在运行时将其加载以使用反射技术调用所需的方法。实现可能会根据各种标准(例如正在下载库的用户)而更改。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.