In the normal C calls, the last argument of the various gl*Pointer methods you pass a pointer to the start of the array. When using interleaved data, you start with a non-zero offset into the array. For example
glVertexPointer(3, GL_FLOAT, 6sizeof(float), &interleaved[0]);
glNormalPointer(GL_FLOAT, 6sizeof(float), &interleaved[3]);
This gives you the initial position and then stride. However, since Java does not have pointer arithmetic to play with, it seems impossible to be able to setup interleaved geometry arrays to play with. Anyone have suggestions on how this may be accomplished?