Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
433 views
in Technique[技术] by (71.8m points)

windows - Java Attach API: changing java.library.path dynamically

When using the com.sun.tools.attach API on my Windows machine, I get the following error when making a call to

VirtualMachine.list()

java.lang.UnsatisfiedLinkError: no attach in java.library.path

The reason is the missing attach.dll. The attach.dll is located in $JRE/bin/. When starting my Java program with -Djava.library.path=[Directory to the attach.dll] everything works out without error output.

Now, I don't want to add every Java program start this ugly JVM parameter. Therefore my questions are:

  1. Is my machine not configured right and the $JRE/bin/ should be in the library path anyway?

  2. If not, how can I add the path dynamically? System.setProperties("java.library.path",StringOfThePathToTheAttach.dll); does not work out. The library path is changed, but the error apperas anyway. Has this something to do with SecurityManager or JVM start up?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Just found a link that might answer your question

"The java.library.path is read only once when the JVM starts up. If you change this property using System.setProperty, it won't make any difference."

http://fahdshariff.blogspot.jp/2011/08/changing-java-library-path-at-runtime.html


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...