好像JNI可以做的:
实例: public class MyNative
{
static
{
System.loadLibrary( "MyNative" );
}
public native static void HelloWord();
public native static String cToJava();
}说明: 1)在JAVA程序中,首先需要在类中声明所调用的库名称System.loadLibrary( String libname );,在库的搜寻路径中定位这个库。定位库的具体操作依赖于操作系统。在windows下,首先从当前目录查找,然后再搜寻”PATH”环境变量列出的目录。如果找不到该库,则会抛出UnsatisfiedLinkError。
2)这里加载的是JNI生成的DLL,而不是其他生成的DLL的名称。 在这里,库的扩展名字可以不用写出来,究竟是DLL还是SO,由系统自己判断。
3) 还需要对将要调用的方法做本地声明,关键字为native。并且只需要声明,而不需要具体实现。 实现放在C中实现,稍后将做说明。
4)如果加了static,表明是静态方法。如果不加,表明是一般的方法。加与不加,生成的头文件中有一个参数不同。稍后将做说明。 现在开始编译它:
用javac MyNative.h编译它,生成对应的class文件。
用javah MyNative ,就会生成对应的MyNative.h头文件。剩下的是就开始交给VC来完成了(我们用VC来实现对应的C实现部分)。
实例: public class MyNative
{
static
{
System.loadLibrary( "MyNative" );
}
public native static void HelloWord();
public native static String cToJava();
}说明: 1)在JAVA程序中,首先需要在类中声明所调用的库名称System.loadLibrary( String libname );,在库的搜寻路径中定位这个库。定位库的具体操作依赖于操作系统。在windows下,首先从当前目录查找,然后再搜寻”PATH”环境变量列出的目录。如果找不到该库,则会抛出UnsatisfiedLinkError。
2)这里加载的是JNI生成的DLL,而不是其他生成的DLL的名称。 在这里,库的扩展名字可以不用写出来,究竟是DLL还是SO,由系统自己判断。
3) 还需要对将要调用的方法做本地声明,关键字为native。并且只需要声明,而不需要具体实现。 实现放在C中实现,稍后将做说明。
4)如果加了static,表明是静态方法。如果不加,表明是一般的方法。加与不加,生成的头文件中有一个参数不同。稍后将做说明。 现在开始编译它:
用javac MyNative.h编译它,生成对应的class文件。
用javah MyNative ,就会生成对应的MyNative.h头文件。剩下的是就开始交给VC来完成了(我们用VC来实现对应的C实现部分)。
解决方案 »
- JDBC问题????
- 急等:大虾好,我现在有这么一情况,该如何解决?
- WebService LIST和HASHMAP的问题
- 编写书籍isbn号的 schema
- 新手问题:有没有J2EE的中文文档查阅啊?
- 如果没有在ejb-jar.xml中定义ejb method的trans-attributeType, 那么它的默认值是什么?
- 引入外部包,classpath遇到的问题?
- 求一个简单的调用存储过程的JAVA语句
- 使用hibernate3.1时如何生成POJO
- 关于Struts的taglibs
- Taglib问题:JSP Parsing Error:File "/demotag" not found
- tomcat怎样把网站根目录ROOT移到其他目录里,怎么配置
[email protected]