For the first command I get:
$ gcc -I/cygdrive/c/j2sdk1.4.2/include/
-I/cygdrive/c/j2sdk1.4.2/include/win32/ -I. -c JNITest.c
In file included from /cygdrive/c/j2sdk1.4.2/include/jni.h:27,
from JNITest.c:8:
/cygdrive/c/j2sdk1.4.2/include/win32/jni_md.h:16: error: syntax error
before "jlong"
/cygdrive/c/j2sdk1.4.2/include/win32/jni_md.h:16: warning: data
definition has no type or storage class
It seems that you don't have __int64 type defined.
From win32.h (cygwin system include files) you have:
# ifndef __int64 /* some versions seem to #define it already */
# define __int64 long long
# endif
Try to put that definition before #include <jni.h>