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>

RecAPI.java

LETTER.java

NZONE.java


Nuance Communications, Inc.