Let's simplify first, since your second loop seems to be a little more complex than necessary. With n=3, i=1, j=2, your loop would transform a=[1,2,3,4,5,6,7] into a=[1,2,3,4,4,5,7]. In other words, the loop shifts n-i elements one position to the right, starting on index j+i. So, actually you need only two parameters instead of three. (Let's define them to be x=n-i and y=j+i.)
Now, given the following excerpt from the javadoc on System.arraycopy()
If the src and dest arguments refer to the same array object, then the copying is performed as if the components at positions srcPos through srcPos+length-1 were first copied to a temporary array with length components and then the contents of the temporary array were copied into positions destPos through destPos+length-1 of the destination array.
I conclude that System.arraycopy(a, y, a, y+1, x); does what you want. Or, if the variables you use are a given, System.arraycopy(a, j+i, a, j+i+1, n-i);.
I didn't test it, so let me know if it works ;)
j+ka legal subscript whenj+k > n-1?