Listing 4: Access to Java environment from C

#include <stdio.h>
#include <string.h>

#include "JavaAccessor.h"

/*** Get environment variable ***/
struct Hjava_lang_String
    *JavaAccessor_getEnv(
        struct HJavaAccessor *javaObj,
        struct Hjava_lang_String *varName)
{
   char *var=makeCString(varName), *value;

   value=getenv(var);
   if (!value)
   {
       SignalError(
           0,
           "java/lang/NullPointerException",
           0);
       return NULL;
   }

   return makeJavaString(value,
                         strlen(value));
}
/*** Delete a local file ***/
long JavaAccessor_deleteFile(
         struct HJavaAccessor *javaObj,
         struct Hjava_lang_String *fileName)
{
   HJavaAccessor *hJavaAccessor;
   int rc=unlink(makeCString(fileName));
   unhand(javaObj)->delRC=rc;

   hJavaAccessor=(HJavaAccessor *)
        execute_java_constructor(
            0,
            "JavaAccessor",
            0,
            "()");

   if (hJavaAccessor)
       execute_java_dynamic_method(
           0,
           (HObject *)hJavaAccessor,
           "printRC",
           "(I)V",
           rc);
   else
      printf(
         "Unable to create hJavaAccessor\n");

   return rc;
}