gpt4 book ai didi

java - 如何在运行时动态导入jar。工具包

转载 作者:行者123 更新时间:2023-12-01 11:04:20 30 4
gpt4 key购买 nike

我正在尝试从 Java 的 JDK 导入 tools.jar,但每当我尝试创建 newInstance 时,都会收到 InstantiationException来自图书馆的类(class)。

到目前为止我的代码:

File toolsLib = new File("myjdk/lib/tools.jar");
URLClassLoader myClassLoader = new URLClassLoader(new URL[] { toolsLib.toURL() }, System.class.getClassLoader());
Class vmClass = myClassLoader.loadClass("com.sun.tools.attach.VirtualMachine");
vmClass.newInstance(); //This is where I get an InstantiationException

这一切都是在我的主程序的单独线程中完成的。

任何帮助将不胜感激。

最佳答案

com.sun.tools.attach.VirtualMachine 的构造函数具有 protected 修饰符并采用两个参数。这就是为什么无法使用 newIntance() 创建新实例的原因。

Class.newInstance() will only succeed if the constructor is has zero arguments and is already accessible.

但是 VirtualMachine 上定义了静态 attach 方法,可用于获取实例。

另请参阅 Oracle 关于 class instantiation 的文档.

关于java - 如何在运行时动态导入jar。工具包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33094440/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com