我需要使用Java Applet在dll中调用一个方法。 dll是用C ++编写的。
是否有可能,如果可能的话,需要什么。
任何人都可以提供样本api
答案 0 :(得分:3)
编写Java代码:
public class TestJNI {
public native void greetings();
static {
System.loadLibrary("greet");
}
public static void main(String args[]) {
new TestJNI().greetings();
}
}
编译Java文件:
jvc TestJNI.java
在生成的类文件上运行JavaH:
javah -jni TestJNI
根据生成的头文件编写C / C ++代码:
#include "TestJNI.h"
#include <stdio.h>
JNIEXPORT void JNICALL Java_TestJNI_greetings(JNIEnv *env,jobject jobj) {
printf("Hello from Visual C++!");
}
编译C / C ++代码:
cl greet.cpp -Ic:\sdk-java.31\include -Fegreet.dll -MD -LD
测试应用程序:
jview TestJNI
答案 1 :(得分:0)
通过rkosegi re查看链接的主题。 &#39;可信代码&#39; - 理解很重要。 aviad已经涵盖了一种方法的许多细节。这篇文章将只关注部署本地人。
使用本机的applet的真正问题是将本机安装在applet可以访问它们的位置。这就是使用Java Web Start部署applet变得有用的地方。 JWS不仅可以根据操作系统和操作系统对本机的下载进行分区。体系结构(32/64位),但然后在应用程序的运行时类路径上使本机可用,准备加载。
截至下一代&#39;插件(例如Sun的1.6.0_10 +),JWS可以部署嵌入式applet(之前它只能自由启动它们)。
但是,为什么你想要一个小程序呢?
更好的替代方案通常是直接从链接(使用JWS)启动自由浮动帧。适用相同的安全限制,但更易于部署和更好的用户体验。