我正在尝试从 java 签名的小程序中读取便携式设备....我在 http://code.google.com/p/jmtp/w/list上找到了一个 jmtp 库来访问便携式设备,但是当我运行它时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
我搜索并发现我必须将 .dll 文件作为本机库包含在 jmtp 项目中...我右键单击项目并导航到属性,然后选择“运行”并选择 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(); } }
请告诉我是什么问题