java - 从小程序调用 dll 方法

标签 java applet

我需要使用 Java Applet 在 dll 中调用一个方法。 dll 是用 C++ 编写的。

是否可以,如果可以,需要什么。

谁能提供示例api

最佳答案

你应该使用 JNI . 看看this文章。

  1. 确保环境变量 CLASSPATH 包含一个 引用“[WINDIR]\Java\Classes\Classes.zip”和“C:”(假设 C: 是你的开发驱动器)。
  2. 确保您的“[SDK-Java]\Bin”目录包含在您的 路径(用于 JavaH、JVC 和 JView)。
  3. 确保已正确设置 Visual C++ 以供命令行使用。 有关详细信息,请参阅您的 Visual C++ 文档。
  4. 编写您的 Java 代码:

    public class TestJNI {
       public native void greetings();
    
       static {
          System.loadLibrary("greet");
       }
    
       public static void main(String args[]) {
          new TestJNI().greetings();
       }
    }
    
  5. 编译Java文件:

    jvc TestJNI.java
    
  6. 在生成的类文件上运行 JavaH:

    javah -jni TestJNI
    
  7. 根据生成的头文件编写C/C++代码:

    #include "TestJNI.h"
    #include <stdio.h>
    
    JNIEXPORT void JNICALL Java_TestJNI_greetings(JNIEnv *env,jobject jobj) {
       printf("Hello from Visual C++!");
    }
    
  8. 编译 C/C++ 代码:

    cl greet.cpp -Ic:\sdk-java.31\include -Fegreet.dll -MD -LD
    
  9. 测试应用程序:

    jview TestJNI
    

关于java - 从小程序调用 dll 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9597882/

相关文章:

java - 没有任何 Spring 导入的 Spring FactoryBean

Java API 打开/关闭 USB 警报灯

Java Applet 在浏览器中运行时不会显示图像

flash - Flash/Java Applet 的 NPAPI 插件的替代品

Java 小程序在更新到 JRE 7u21 后停止工作

java - 原子地获取多个锁

java - 从字符 ArrayList 中删除一个字符

c# - C# 中的 Java SHA1 等效项

java - 小程序:连接到其他主机

java - Firefox 在不可见时会杀死 Java 小程序