How to use Nuance CSDK from Java
Create NuanceRecAPI.java like so:
/**
* NuanceRecAPI
*/
public class NuanceRecAPI {
private native int kRecInit(String Company, String Product);
/* kRecQuit() etc */
public static void main(String[] args)
{
NuanceRecAPI recapi = new NuanceRecAPI();
int rc = recapi.kRecInit("YourCompany", "YourProduct");
System.out.println("Java RC: " + rc);
}
static {
System.loadLibrary("NuanceRecAPI");
}
}
C:\Temp\CSDKJNI>"\Program Files\Java\jdk1.8.0_161\bin\javac.exe" NuanceRecAPI.java
C:\Temp\CSDKJNI>"\Program Files\Java\jdk1.8.0_161\bin\javah.exe" -jni NuanceRecAPI
NuanceRecAPI.h created:
/* DO NOT EDIT THIS FILE - it is machine generated */
#include
/* Header for class NuanceRecAPI */
#ifndef _Included_NuanceRecAPI
#define _Included_NuanceRecAPI
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: NuanceRecAPI
* Method: kRecInit
* Signature: (Ljava/lang/String;Ljava/lang/String;)I
*/
JNIEXPORT jint JNICALL Java_NuanceRecAPI_kRecInit
(JNIEnv *, jobject, jstring, jstring);
#ifdef __cplusplus
}
#endif
#endif
Implement NuanceRecAPI.cpp like so:
#include "NuanceRecAPI.h"
#include "C:\Program Files (x86)\Nuance\OPCaptureSDK20\Include\KernelAPI.h"
JNIEXPORT jint JNICALL Java_NuanceRecAPI_kRecInit
(JNIEnv *env, jobject, jstring Company, jstring Product)
{
jboolean jb = false;
const char *c = env->GetStringUTFChars(Company, &jb);
const char *p = env->GetStringUTFChars(Product, &jb);
printf("JNI: kRecInit %s, %s ", c, p);
RECERR rc = kRecInit(c, p);
printf("JNI: RC: ", rc);
return (jint)rc;
}
"To build:"
"\Program Files (x86)\Java\jdk1.8.0_161\bin\javac.exe" -Xdiags:verbose TestProgram.java nuancecsdk\RecAPI.java nuancecsdk\NZONE.java nuancecsdk\LETTER.java
"\Program Files\Java\jdk1.8.0_161\bin\javah.exe" -jni nuancecsdk.RecAPI
C:\Temp\CSDKJNI>cl -I "c:\Program Files (x86)\Java\jdk1.8.0_161\include" -I "c:\Program Files (x86)\Java\jdk1.8.0_161\include\win32"
-MD -LD NuanceRecAPI.cpp /link "C:\Program Files (x86)\Nuance\OPCaptureSDK20\Lib\KernelAPI.lib"
C:\Temp\CSDKJNI>"\Program Files (x86)\Java\jdk1.8.0_161\bin\java.exe" NuanceRecAPI
JNI: kRecInit Nuance, CSDK JNI: RC: 0
C:\Temp\CSDKJNI>
Nuance Communications, Inc.