Java Attach API:动态更改java.library.path
在Windows计算机上使用com.sun.tools.attach API时,调用以下命令时出现以下错误
VirtualMachine.list()
原因是缺少attach.dll。attach.dll位于$JRE/bin/
。当启动我的Java程序时,-Dlibrary.path" title="java.library.path">java.library.path=[Directory
to the attach.dll]一切正常,没有错误输出。
现在,我不想添加每个Java程序来启动这个丑陋的JVM参数。因此,我的问题是:
我的机器配置是否正确,并且
$JRE/bin/
应该在库路径中吗?如果没有,如何动态添加路径?
System.setProperties("java.library.path",StringOfThePathToTheAttach.dll);
无法解决。库路径已更改,但无论如何都会出现错误。这与SecurityManager或JVM启动有关吗?
回答:
你System.setProperty("java.library.path",
StringOfThePathToTheAttach.dll);应该工作。我的猜测是您称呼为时已晚。换句话说,在设置属性之前,尝试访问DLL。
您可以在代码中设置了属性之后,又在有问题的方法调用之前再次输出java.library.path的当前值吗?
即,如果在看到“设置属性后”之前看到“ Before.dll调用之前”输出,则说明问题出在哪里。
编辑:
指向本机库的一种更好的方法是System.load(StringOfThePathToTheAttach.dll)
在有问题的代码行之前再次使用-。
以上是 Java Attach API:动态更改java.library.path 的全部内容, 来源链接: utcz.com/qa/412882.html