The only way I've been able to elevate reliability in Java is by using Shell.execute() against PowerShell. Of course, at that point, you might as well use PowerShell for the registry commands as well.
{"Start-Process", "powershell.exe", "-ArgumentList", args, "-Wait", "-Verb", "RunAs"};
... where "args" is your "reg write", etc.
This would mean that the final solution doesn't use JNA at all.
If instead, you'd like to use Win32 APIs to relaunch the Java application as administrator, I'm sure there's a way to do that too.