问题标签 [classloader]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jar - 获取 urlclassloader 加载的 jar 文件的大小
有人知道找到由 urlclassloader 动态加载的文件大小的好方法吗?
我以以下方式使用 urlclassloader,但需要跟踪使用了多少带宽。
提前致谢!
java - Can I set the classloader policy for WebSphere in the ibm-web-bnd.xmi file?
I have a JEE application that runs on WAS 6. It needs to have the class loader order setting to "Classes loaded with application class loader first", and the WAR class loader policy option set to "Single class loader for application".
Is it possible to specify these options inside the EAR file, whether in the ibm-web-bnd.xmi file or some other file, so the admin doesn't need to change these setting manually?
Since the app is deployed via an automated script, and the guy who is in charge of deployment is off site, and also for some other political reasons, this would greatly help!
java - 如何绕过这个无效的类加载器层次结构?
我运行 iPlanet 的 Java 应用程序服务器,其中的内容正在加载commons-logging-1.0.4.jar
。
这很好,直到我的一个应用程序调用AuthSSLProtocolSocketFactory
它是另一个也使用commons-logging
.
我将 jar 放在 jvm 类路径上并收到此错误:
Invalid class loader hierarchy. You have more than one version of 'org.apache.commons.logging.Log' visible, which is not allowed. (Caused by org.apache.commons.logging.LogConfigurationException: Invalid class loader hierarchy....
似乎commons-logger
不喜欢在不同的类加载器中加载自身的两个实例。我假设应用程序服务器有自己的类加载器,它第一次加载它(虽然我找不到任何提到它的 appserver 配置)所以当我的应用程序第二次加载它时它会抛出该异常。
我无法更改 Web 服务器,也无法更改 apache 库。建议?
java - 将相对目录添加到 java 类路径并使用 ClassLoader().getResourceAsStream("")
是否可以将相对目录(即 foo/bar/plugh)添加到 java 类路径并使用
获取 foo/bar/plugh/xyzzy.properties?
我的类路径如下所示:
而且我可以使用 foo 和 xyz jar 中的类和资源,但不能使用 plugh 目录中的类和资源。在这些情况下,in
始终为空。
我无法让它工作,并且不确定这是否只是不受支持,我错过了一些微妙的东西,或者我做错了什么。我需要使用绝对路径吗?
java - 从 Java 中的类路径加载资源的 URL
在 Java 中,您可以使用相同的 API 但使用不同的 URL 协议来加载各种资源:
这很好地将资源的实际加载与需要资源的应用程序分离,并且由于 URL 只是一个字符串,因此资源加载也很容易配置。
是否有使用当前类加载器加载资源的协议?这类似于 Jar 协议,只是我不需要知道资源来自哪个 jar 文件或类文件夹。
当然,我可以使用 来做到这一点Class.getResourceAsStream("a.xml")
,但这需要我使用不同的 API,因此需要更改现有代码。我希望能够在我已经可以为资源指定 URL 的所有地方使用它,只需更新属性文件即可。
java - 小程序类加载器在小程序的 jar 中找不到类
我开始问这个问题,然后在提交之前想出了答案。无论如何,我决定发布这个问题,以便遇到同样问题的其他人能够从我的错误中吸取教训。
我遇到了一个小程序(实际上是一个JApplet)无法实例化与小程序相同的 jar 中包含的另一个类的问题。我在 Java 控制台上看到的异常是:
我知道JDataStore
该类包含在 jar 中。如果我使用列出的内容,jar tvf CM_Library.jar
我可以看到它在正确的包下。但是,上面的链接异常让我相信类加载器没有在存档中搜索JDataStore
,而是在 Web 服务器上寻找 JDataStore.class 文件。为什么是这样?类加载器知道从 jar 加载 MediatorApplet 类,为什么它不检查 JDataStore 呢?如果我没有在小程序标签上正确指定参数,我也会在此处包括:
reflection - 查找 RCP 应用程序的显示
我正在编写一个正在启动 GUI 应用程序的测试框架。为了能够在 SWT 应用程序的情况下测试这个 GUI,我需要知道它的显示。一般来说,这个显示是由另一个类加载器加载的,因此我通过反射使用 swt Display 类的 findDisplay(Thread t) 方法来完成这个任务。我的代码看起来像这样:
在我看来,这应该在当前线程组中找到每个 Display 类型的对象。但是,尽管 GUI 正在完美启动,但我没有得到任何文本编辑器 RCP 示例。
任何想法出了什么问题或我如何以合理的方式调试它?
java - Web 应用程序启动时首先加载哪个类?
我有一个 Web 应用程序和两个类文件,
第一类是MyClass.class,它位于 abc.jar 文件 (WEB-INF/lib/abc.jar) 中,第二类是YourClass.class,它位于类文件夹 (WEB-INF/classes/YourClass.class) 中。
我的问题是应用程序启动时首先加载哪个类?为什么?
java - 使用 ClassLoader 方法检索类下的所有资源作为输入流
我的问题是您认为很常见的问题,但到目前为止我还没有找到解决方案。
在 Tomcat 5.5 下构建 Java Web 应用程序(尽管要求它可以部署在任何地方,例如在 WebLogic 环境下,因此需要将资源作为流加载)。良好的做法要求将资源文件放在WEB-INF/classes下并使用 ClassLoader 的getResourceAsStream()方法加载。当您知道要加载的资源的名称时,一切都很好。
我的问题是我需要加载位于classes的子目录中的所有内容(包括递归地在非空子目录中)。
因此,例如,如果我在WEB-INF/classes下有以下内容:
文件夹X/文件夹Y
文件夹X/文件夹Y/fileA.properties
文件夹X/fileB.properties
我需要加载fileA.properties 和fileB.properties 类,但在启动应用程序之前实际上并不知道它们的名称(即我需要能够从WEB-INF/classes 下的任何目录中任意加载资源)。
最优雅的方法是什么?我可以查询什么对象来找到我需要的信息(每个所需资源的资源路径)?最好使用非 servlet 特定的解决方案(如果可能,将其全部保存在类加载框架中)。
提前致谢!
python - 在python中,如何卸载生成的类
我正在开发一个将文件(hfd5 - pytables)加载到对象结构中的库。用于结构的实际类作为字符串从 hdf5 文件加载,然后以这种方式加载:
问题是,像这样加载多个类会导致对象出现在垃圾收集的不可回收部分,即实际的类定义中。我也可以将它加载到全局字典中,但问题仍然存在于孤立类中。有什么办法可以卸载类吗?
主要问题是班级。mro属性,其中包含对类本身的引用,导致垃圾收集器无法处理的循环引用。
这是一个小测试用例,供您自己查看:
请注意:我之前已经反对使用解析文件中的文本来创建类,但显然他们在这里使用它并且看到了一些我没有看到的好处,所以现在放弃这个解决方案是不可行的.