【发布时间】:2012-09-29 16:41:51
【问题描述】:
我正在尝试从 java 签名的小程序中读取便携式设备.... 我在上面找到了一个 jmtp 库 http://code.google.com/p/jmtp/w/list 可以访问便携式设备,但是当我在 netbeans 中运行它时会出错
线程“主”java.lang.UnsatisfiedLinkError 中的异常:java.library.path 中没有 jmtp 在 java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860) 在 java.lang.Runtime.loadLibrary0(Runtime.java:845) 在 java.lang.System.loadLibrary(System.java:1084) 在 jmtp.PortableDeviceManagerImplWin32.(PortableDeviceManagerImplWin32.java:38) 在 jmtp.PortableDeviceManager.(PortableDeviceManager.java:34) 在 jmtp.Jmtp.main(Jmtp.java:23) Java 结果:1我搜索并发现我必须在 jmtp 项目中包含 .dll 文件作为本机库... 我右键单击项目并导航到属性,然后选择“运行”并选择 VM 选项为
-Djava.library.path="c:\jmtp\native\windows"并将 jmtp.dll 文件放在 c:\jmtp 文件夹中
但同样的错误不断出现 我的代码是
打包 jmtp;import jmtp.PortableDevice;
import jmtp.PortableDeviceManager;
import jmtp.PortableDeviceObject;
import jmtp.PortableDeviceStorageObject;
public class Jmtp {
public static void main(String[] args) {
PortableDeviceManager manager = new PortableDeviceManager();
PortableDevice device = manager.getDevices()[0];
// Connect to my mp3-player
device.open();
System.out.println(device.getModel());
System.out.println("---------------");
// Iterate over deviceObjects
for(PortableDeviceObject object : device.getRootObjects()) {
// If the object is a storage object
if(object instanceof PortableDeviceStorageObject) {
PortableDeviceStorageObject storage = (PortableDeviceStorageObject)object;
for(PortableDeviceObject o2 : storage.getChildObjects()){
System.out.println(o2.getName());
}
}
}
manager.getDevices()[0].close();
}
}
请告诉我有什么问题
【问题讨论】:
-
您也可以直接从源存档中附加的 bat 文件中复制和粘贴参数。
标签: java netbeans-7 unsatisfiedlinkerror java.library.path wpd