Tag: native methods

参数传递本机方法

可能重复: jni将jstring转换为char * С上有一个函数(traverser.c模块) long int Traverser(const char * sTraversingRoot) { long int nCount; struct stat rStatBuf; time_t nTime; char sActualPath[512]; PGconn *pConn; // Open DB connection sprintf(sConnInfo, “hostaddr=%s port=%s connect_timeout=50 dbname=%s user=%s password=%s”, sIP, sPort, sDBName, sLogin, sPassword); pConn = PQconnectdb(sConnInfo); if (PQstatus(pConn) == CONNECTION_BAD) { AddErrorToLog(“No connect\n”); return 0; } GetActualPath(sActualPath, sTraversingRoot); if […]

从C代码创建JAVA类

我在Java中有一个名为XMLDOMDocument类,这个类有一些方法CreateXML , AddNode , RemoveNode等。我在Java Native Interface的帮助下从C代码调用这个方法,但为了做到这一点,我传递给了我的JAVA类的C代码对象然后通过调用env->GetObjectClass(myclass)我从该对象获取我的类并调用JAVA类的方法。 我想知道我可以做同样的事情(调用JAVA方法)而不将我的类传递给C代码。 我可以在C代码中创建JAVA类,然后调用它的方法。 编辑 如果我的C代码中有JavaVM,我可以借助该Java VM在C代码中创建一个新的JAVA类实例。 编辑 我想我找到了一些有用的东西创建Java虚拟机 ,但我想知道必须要使用什么值#define USER_CLASSPATH ? 如果必须是包名com.fido.android.framework.service public class Prog { public static void main(String[] args) { System.out.println(“Hello World ” + args[0]); } } #include #define PATH_SEPARATOR ‘;’ /* define it to be ‘:’ on Solaris */ #define USER_CLASSPATH “.” /* where Prog.class is […]