में कोई अनुलग्नक मैं अटैच एपीआई का उपयोग करके मेरी मशीन पर चल रहे सभी वीएम की एक सूची प्राप्त करने का प्रयास कर रहा हूं।इसे ठीक करें: java.lang.UnsatisfiedLinkError: java.library.path
इस कोड मैं का उपयोग कर रहा है:
import java.lang.reflect.Field;
import java.util.List;
import com.sun.tools.attach.*;
public class JVMListManager
{
static String pathToAdd = "C:/Program Files/Java/jdk1.7.0_03/jre/bin/attach.dll";
public static void setLibraryPath(String path) throws Exception {
System.setProperty("java.library.path", pathToAdd);
Field fieldSysPath = ClassLoader.class.getDeclaredField("sys_paths");
fieldSysPath.setAccessible(true);
fieldSysPath.set(null, null);
}
private void listActiveVM()
{
List<VirtualMachineDescriptor> vm = VirtualMachine.list();
int i= 1;
for(VirtualMachineDescriptor vmD : vm)
{
System.out.println(i + ". " + vmD.displayName());
i++;
}
}
public static void main(String[] args) throws Exception
{
setLibraryPath(pathToAdd);
JVMListManager jvmListManager = new JVMListManager();
jvmListManager.listActiveVM();
}
}
त्रुटि:
java.util.ServiceConfigurationError: com.sun.tools.attach.spi.AttachProvider: Provider sun.tools.attach.WindowsAttachProvider could not be instantiated: java.lang.UnsatisfiedLinkError: no attach in java.library.path
कृपया मुझे पता है कि तरीकों मैं इसे ठीक करने के लिए उपयोग कर सकते हैं।
मैंने System.load (pathToAdd) का उपयोग करने का भी प्रयास किया है; इसके अलावा मैंने इस Blog post को संदर्भित किया है, लेकिन यह काम नहीं करता है। : '(
देखें http://stackoverflow.com/questions/5565356/java-attach-api-changing-java-library-path- गतिशील रूप से –
आपका पथटॉइड सीधे डीएल पर इंगित कर रहा है, इसे इसके बजाय डीएलएल वाले फ़ोल्डर को इंगित करना चाहिए । –