This shouldn't require a cast to long.  Casting to jint should cast to a 32 bit value, which will truncate the upper bits (if any) and leave you with the low 32.  So this is just:

  elems[9] = (jint) finfo.st_size;