问题标签 [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.

0 投票
6 回答
4480 浏览

java - 如何在启动时在 JVM 中预加载 Web 应用程序类?

在我们的 Web 应用程序中,由于类加载,某些页面的第一次加载需要花费少量但值得注意的额外时间。有没有人有任何聪明的方法在启动时在 JVM 中预加载 Web 应用程序类?


更新:我们现在要做的是在 db 表中存储一堆(700)完整的类名。我们在启动时读取表格并执行 Class.forName()。它工作正常,但我认为可能有更聪明的方法。我们使用分析器确定了启动时引用的 700 个类。

0 投票
6 回答
182734 浏览

java - Java 资源作为文件

Java中有没有办法在File通过类加载器从jar中检索到的资源上构造一个实例?

我的应用程序使用 jar 中的一些文件(默认)或运行时指定的文件系统目录(用户输入)。我正在寻找一种一致的方式来
a)将这些文件作为流加载
b)分别列出用户定义的目录或jar中的目录中的文件

编辑:显然,理想的方法是完全远离java.io.File。有没有办法从类路径加载目录并列出其内容(其中包含的文件/实体)?

0 投票
3 回答
5830 浏览

java - 在 jar 启动时预加载 java 类/库?

在对服务器的第一次 RPC 调用期间发生超时,但 subsequest 请求成功。服务器响应超时,因为在第一次调用时它会加载处理请求所需的库。由于此延迟,一些客户端超时。尽管可以增加客户端的超时延迟,但我想尽量减少类加载对应用程序响应能力的影响。

您将如何预加载 Java 类文件,以便在.jar首次运行应用程序文件时,类加载不会在第一次调用时引入延迟?

0 投票
3 回答
1355 浏览

java - 类加载器混淆

我在几个地方看到“Class.getClassLoader() 返回用于加载该特定类的 ClassLoader”,因此,我对以下示例的结果感到困惑:

clazz.getClassLoader() == mcl 语句不应该返回 true 吗?有人可以解释我在这里缺少什么吗?

谢谢。

0 投票
1 回答
482 浏览

java - Java 代理有哪些有趣的用途?

从 Java 5 开始,可以选择将 Java 代理添加到类加载器。

你写过代理吗?你用过代理吗?代理有什么有趣的用途?

0 投票
2 回答
1446 浏览

java - 如何以编程方式找到主执行类的完整路径

我正在尝试以编程方式本地化属性文件,而不必将命令行上的完整路径名传递给我的程序。我想如果我可以找到主类的路径,我可以将我的属性文件放在同一目录或子目录中。

如果这不起作用,是否有其他方法可以找到属性文件的路径,而无需在命令行中传递它。

谢谢

0 投票
4 回答
2626 浏览

java - 控制Java中的类加载顺序

我创建了一个包含一堆属性值的类。为了初始化该类,我必须调用一些静态方法“configure()”,该方法从 XML 文件对其进行配置。

那个类应该用来存储一些数据,这样我就可以写了

configure()从 main 中的一个静态块调用它,所以我可以在任何地方使用它

如果我将某个其他类的静态常量成员设置为我的“PropClass”中的一个值,我会得到 null,

这可能是因为该表达式是在调用配置之前评估的。我该如何解决这个问题?

我怎样才能强制调用configure()将首先执行?谢谢

0 投票
5 回答
13741 浏览

java - 如何调试JVM资源加载?

要在 JVM 中调试类加载,我们可以使用 param -verbose:class,但是... 任何人都知道如何调试资源加载(例如属性文件)?

0 投票
3 回答
16951 浏览

java - classloader.getSystemResourceAsStream 返回 null

我正在尝试加载属性文件而不使用文件的实际路径。我已经在其他一些简单的应用程序上使用:

但这一次它不起作用。inputStream 出于某种原因为空。PROPERTIES_FILE 是一个定义为“app.properties”的常量。我试图删除 .properties 扩展名并得到相同的结果。

有任何想法吗?

谢谢。

0 投票
4 回答
10404 浏览

java - 我的 Java 类是从文件系统的哪个位置加载的?

我认为这是每个 Java 程序员都会遇到的情况,如果他们做的时间足够长的话。您正在做一些调试并对类进行更改。当您重新运行程序时,这些更改似乎没有被拾取,而是旧类似乎仍在运行。你清理并重建一切,同样的问题。有时,这可能归结为类路径问题,即同一个类不止一次在类路径上,但似乎没有一种简单的方法可以确定正在加载的类的来源......

有没有办法找到加载的类的文件路径?如果该类是从.class文件或.jar文件加载的,则最好使用可以工作的东西。有任何想法吗?