问题标签 [dynamic-class-loaders]

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 投票
1 回答
646 浏览

java - Reusing Class Instance without recreating them

I have a bunch of classes that I have already loaded and already done newInstance() on the classes. I would like to reuse these classes without needing to do a newInstance() again and also reuse their current states. Is there a method to replace the use of newInstance() so that I can reuse already instantiated classes without recreating them (thus losing all the states). How should I go about it ?

Note: I have a previous post regarding classloading but the problems behind these 2 posts are not the same.

0 投票
2 回答
172 浏览

java - 仅使用字符串的动态类加载

有没有办法在运行时编译和加载 Java 类,而无需在操作系统文件系统中创建和存储文件?

假设我有一个包含 java 类的字符串表示的数据库记录。我将该字符串拉入 Java 内存。我的目标是将该 String 编译成一个 java 类,然后加载该类。

让我说清楚。在任何操作系统中,我都不想与 .java 文件或 .class 文件有任何关系。

这可能吗?如何?

例如,下面是在运行时加载 Groovy 类并调用方法的代码:

但我们可以做类似的事情:

?

0 投票
1 回答
130 浏览

java - 将对象传递给 JCL 加载的类

我有一个非常棘手的问题。ComponentContext我有一个容器,可以使用以类作为参数的方法运行自定义 JAR 。加载后我想用反射调用这个方法,但是有一个问题——我必须使用相同的类加载器(在这种情况下为 JCL)来创建ComponentContext. 见代码:

当我尝试像这样传递在容器中创建的上下文时

java.lang.IllegalArgumentException由于另一个类加载器而失败。

这意味着我的容器依赖于 JAR 中的类,这让我抓狂。有没有办法将我自己的ComponentContext(不是从 JAR 实例化的)传递给方法initialize

PS - JAR 是用assembly:single

0 投票
2 回答
816 浏览

java - 使用 Java RMI 时代码在哪里执行?

在没有任何 Java RMI 经验的情况下,我有一个幼稚的问题,但在搜索互联网后仍然不确定答案。

问题:

在我看来,有两种情况:

场景1:从本地启动一个Java程序,在执行过程中,它从存储在远程机器上的类中调用一个方法,然后将该方法的类下载到本地机器,并继续执行。

场景2:从本地启动一个Java程序,在执行过程中,它从存储在远程机器上的类中调用一个方法,然后该方法将在远程机器上执行,并将结果发送回本地机器. (这需要类/对象转移吗?

Java RMI 使用哪一个?或者都不是?

来自RPC 的维基百科:“RPC 允许计算机程序使子程序或过程在另一个地址空间(通常在共享网络上的另一台计算机上)执行”,这似乎是第二种情况。

但是根据这篇论文Reducing Data Transfer during Remote Classloading in Java RMI,这似乎是第一种情况。

0 投票
1 回答
64 浏览

java - 使用 RMIClassLoader 和 URLClassLoader 的场景?

谁能解释这两个装载机的一般用途?

它们之间的主要区别是什么?

它们在哪些典型场景中使用?

0 投票
1 回答
34761 浏览

java - 如何使用 -Xbootclasspath/p:path 完成类加载?

我已经看到 -Xbootclasspath/p:path 用于动态加载类,请您通过提供示例进行详细说明和解释。

0 投票
1 回答
29 浏览

java - 如何使用 Oracle 文档构建 URI

我浏览URL API了 Oracle 文档。我想构建位于远程机器上URI的引用Jars,但是从规范中我无法确定如何使用它们。该文件提供RFC2396了规格参考。但是,这也没有为其用法提供任何具体示例。

0 投票
1 回答
509 浏览

java - 类加载器并加载一个位置不等于其包的类

.class每当编译文件出现在该特定目录中时,我希望能够从已知目录加载一个类。.class但是,无论文件package中的声明是什么,我都希望加载.java。例如,我有这个我想加载的类:

}

它在包装中com.javaloading.test。然后我想使用这个类加载它:

如果我将上述.class两个类的文件放入同一个目录并运行GetPackage它会导致错误

线程“主”java.lang.NoClassDefFoundError 中的异常:SomeClassInPackage(错误名称:com/javaloading/test/SomeClassInPackage

我需要能够(从文件中)加载一个类,而不管它是声明的包,而不必真正知道它的包。然后我会检查加载的类的包信息。这是否可以使用 System ClassLoader 或自定义 ClassLoader 或者在不了解包结构的情况下是不可能的?如果可能的话,任何建议表示赞赏。

0 投票
0 回答
245 浏览

java - 从非默认包加载类

当我尝试在运行时动态加载一个类,并且该类是在一个不是默认包的包中编译时,我有一个 ClassNotFound 异常。

示例:包名称:“型号”。类名:“Cup.class”。这是我的代码:

0 投票
2 回答
2259 浏览

java - 如何在运行时从下载的 jar 文件中加载未知类?

我正在构建一个客户端服务器应用程序。在运行时,客户端应用程序从服务器应用程序加载一个 jar 文件并存储它。我将客户端和服务器应用程序都作为 jar 文件运行。我现在想加载这个下载的 jar 文件中包含的类。

例如,我有一个接口 A 和一个实现 A 的类 B。客户端应用程序不知道类 B、它的名称甚至它的存在。客户端应用程序启动后,客户端应用程序下载一个 jar 文件,该文件包含一个 jar 文件,其内容为: server/package/B.class 其中 server 和 package 是文件夹。

现在客户端应用程序应该使用以下代码从下载的 jar 文件中加载此类 B:

但后来我ClassNotFoundException在最后一行得到了一个。我必须先提取 jar 文件吗?jar 文件中的文件夹结构类似于服务器应用程序的 bin 目录中的文件夹结构。