![](/img/trans.png)
[英]How to connect two different excel files as databases on the same server in java?
[英]Same JNI Method in Two Different Java Files
是否可以在兩個不同的Java文件中使用相同的JNI方法?
例如,我在c中有一個方法add()。 我已經在JNI文件中編寫了addJNI()。 現在可以在兩個不同的文件a.java和b.java中調用addJNI()
希望我清楚。
謝謝。
對的,這是可能的。 您只需要在一個Java類文件中加載其本機庫。 並在所需的盡可能多的文件中使用該類。
看到
這是Hellojni.c
#include "HelloWorld.h"
#include "jni.h"
#include "stdio.h"
JNIEXPORT void JNICALL Java_HelloWorld_print(JNIEnv *env, jobject obj)
{
printf("Hello world\n");
return;
}
現在您可以使任何Java類調用該jni方法
class HelloWorld {
public static native void print(); //native method
static //static initializer code
{
System.loadLibrary("CLibHelloWorld");
}
}
現在,根據需要在“多個Java”文件中使用該Java類
HelloWorld.print();
當然,它與調用任何其他方法相同。 但是僅僅編寫一個名為addJNI()的方法是行不通的。 您必須遵守javah工具生成的標頭語法。
是的,毫無疑問,編寫包含JNI的Wrapper方法的類,就像Java和C的接口類。
例如:
public class myWrapperClass
{
static
{
java.lang.System.loadLibraray("mylibraray");
}
public static void myfunctionOne(String str1, String str2);
public static int myfunctionTwo(int num1, String str2);
----
---more methods
------
}
//To call these methods in different classes as they are abstract and static:
myWrapperClass.myfunctionOne("Hello", "JNI");
myWrapperClass.myfunctionTwo("1 , Number");
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.