There are lots if times when the system needs to be restarted, for example, after changing the autoexec.bat path. Here is code you can use, in the place of writing a jni code, to restart and shutdown Windows operating systems.
Shutdown Windows operating systems:
Runtime.getRuntime().exec("rundll32.exe user.exe,ExitWindows");
And for Restart: Runtime.getRuntime().exec("rundll32.exe user.exe,ExitWindowsEx");