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
検索したところ、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(); } }
何が問題なのか教えてください