http://jatula.iteye.com/blog/259328地址在这里 我按上面的方法去做
把DLL文件放在JDK的BIN目录下..
然后运行.提示异常Exception in thread "main" java.lang.UnsatisfiedLinkError: com.anv.test.CtrlFtpFile.getMediaTime(Ljava/lang/String;)Ljava/lang/String;
at com.anv.test.CtrlFtpFile.getMediaTime(Native Method)
at com.anv.test.test.main(test.java:15)从没用java调用过dll
请大家指教

解决方案 »

  1.   

    如果你用的是Eclipse的话,将DLL放在project目录下。
      

  2.   

    我用的是MyEclipse
    具体的要怎么做 求解.很急..
    谢谢你的帮助 
      

  3.   

    这个错误是找到dll了,从dll中没有找到对应的函数 有可能名字错误,有可能参数错误等等,最好能看看他dll怎么写的
      

  4.   


    那个DLL文件是Delphic写的.而且是别人写的,我对里面的内容看不太懂
    这下郁闷了...还有人提到用JMF..但是看了下API.没有找到具体的方法..
      

  5.   

    楼主所写的这个类一定要放在 “com.avedia.transfers.struts.action”的包路径中,否则就会抛出“UnsatisfiedLinkError”异常,这是由于jni调用dll中的方法名所决定的。
    包路径错了吧 这个就有可能导致没找到对应的函数
      

  6.   

    那请问一下 有人用JMF获取过视频信息吗?
    我找了一上 网上没有例子 自己看API 英语不太好..
    有没有人用过JMF
      

  7.   

    要看你的是什么视频了,直接解析视频头信息就行了,视频信息头里面包含了视频的长度,比如你用byte的话,再在里面去它的byte率,直接除一下就行了
      

  8.   

    java调用dll一定要基于jni,dll文件源码中一定要引入java的头文件,调用的类也要写成头文件放入delphi或者c++工程里。比如:
    com.test.Test.java
    方法: String test();
    要生成com_test_Test.h
    对应的方法是这样的:
    JNIEXPORT jstring JNICALL Java_com_test_Test_test
      (JNIEnv *, jobject);在你的cpp文件里实现这个方法,类似:
    JNIEXPORT jstring JNICALL Java_com_test_Test_test
      (JNIEnv *env, jobject jobj)
    {
       return env->NewStringUTF("aaa");
    }
      

  9.   

    根据上面的原理,你看看你有没有com_anv_test_CtrlFtpFile.h的头文件,如果都正确,你可以把dll文件放入system32目录中或者java_home/bin目录中。最好把你的代码贴出来