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参数。因此,我的问题是:

  1. 我的机器配置是否正确,并且$JRE/bin/应该在库路径中吗?

  2. 如果没有,如何动态添加路径?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

回到顶部