如何在运行时动态导入jar。的tools.jar

时间:2015-10-13 04:58:51

标签: java

我正在尝试从Java的JDK导入tools.jar,但每当我尝试从库中创建InstantiationException类时,我都会得到newInstance

到目前为止我的代码:

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

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

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

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

  

Class.newInstance()只有在构造函数为零时才会成功   参数已经可以访问。

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

另请参阅有关class instantiation的Oracle文档。