问题标签 [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.
java - 如何在启动时在 JVM 中预加载 Web 应用程序类?
在我们的 Web 应用程序中,由于类加载,某些页面的第一次加载需要花费少量但值得注意的额外时间。有没有人有任何聪明的方法在启动时在 JVM 中预加载 Web 应用程序类?
更新:我们现在要做的是在 db 表中存储一堆(700)完整的类名。我们在启动时读取表格并执行 Class.forName()。它工作正常,但我认为可能有更聪明的方法。我们使用分析器确定了启动时引用的 700 个类。
java - Java 资源作为文件
Java中有没有办法在File
通过类加载器从jar中检索到的资源上构造一个实例?
我的应用程序使用 jar 中的一些文件(默认)或运行时指定的文件系统目录(用户输入)。我正在寻找一种一致的方式来
a)将这些文件作为流加载
b)分别列出用户定义的目录或jar中的目录中的文件
编辑:显然,理想的方法是完全远离java.io.File
。有没有办法从类路径加载目录并列出其内容(其中包含的文件/实体)?
java - 在 jar 启动时预加载 java 类/库?
在对服务器的第一次 RPC 调用期间发生超时,但 subsequest 请求成功。服务器响应超时,因为在第一次调用时它会加载处理请求所需的库。由于此延迟,一些客户端超时。尽管可以增加客户端的超时延迟,但我想尽量减少类加载对应用程序响应能力的影响。
您将如何预加载 Java 类文件,以便在.jar
首次运行应用程序文件时,类加载不会在第一次调用时引入延迟?
java - 类加载器混淆
我在几个地方看到“Class.getClassLoader() 返回用于加载该特定类的 ClassLoader”,因此,我对以下示例的结果感到困惑:
clazz.getClassLoader() == mcl 语句不应该返回 true 吗?有人可以解释我在这里缺少什么吗?
谢谢。
java - Java 代理有哪些有趣的用途?
从 Java 5 开始,可以选择将 Java 代理添加到类加载器。
你写过代理吗?你用过代理吗?代理有什么有趣的用途?
java - 如何以编程方式找到主执行类的完整路径
我正在尝试以编程方式本地化属性文件,而不必将命令行上的完整路径名传递给我的程序。我想如果我可以找到主类的路径,我可以将我的属性文件放在同一目录或子目录中。
如果这不起作用,是否有其他方法可以找到属性文件的路径,而无需在命令行中传递它。
谢谢
java - 控制Java中的类加载顺序
我创建了一个包含一堆属性值的类。为了初始化该类,我必须调用一些静态方法“configure()”,该方法从 XML 文件对其进行配置。
那个类应该用来存储一些数据,这样我就可以写了
我configure()
从 main 中的一个静态块调用它,所以我可以在任何地方使用它
但
如果我将某个其他类的静态常量成员设置为我的“PropClass”中的一个值,我会得到 null,
这可能是因为该表达式是在调用配置之前评估的。我该如何解决这个问题?
我怎样才能强制调用configure()
将首先执行?谢谢
java - 如何调试JVM资源加载?
要在 JVM 中调试类加载,我们可以使用 param -verbose:class
,但是... 任何人都知道如何调试资源加载(例如属性文件)?
java - classloader.getSystemResourceAsStream 返回 null
我正在尝试加载属性文件而不使用文件的实际路径。我已经在其他一些简单的应用程序上使用:
但这一次它不起作用。inputStream 出于某种原因为空。PROPERTIES_FILE 是一个定义为“app.properties”的常量。我试图删除 .properties 扩展名并得到相同的结果。
有任何想法吗?
谢谢。
java - 我的 Java 类是从文件系统的哪个位置加载的?
我认为这是每个 Java 程序员都会遇到的情况,如果他们做的时间足够长的话。您正在做一些调试并对类进行更改。当您重新运行程序时,这些更改似乎没有被拾取,而是旧类似乎仍在运行。你清理并重建一切,同样的问题。有时,这可能归结为类路径问题,即同一个类不止一次在类路径上,但似乎没有一种简单的方法可以确定正在加载的类的来源......
有没有办法找到加载的类的文件路径?如果该类是从.class
文件或.jar
文件加载的,则最好使用可以工作的东西。有任何想法吗?