我正在将我们的项目从java 6迁移到java 8.应用程序与java 6完美运行,但在java 8上执行相同的代码/应用程序似乎工作正常,直到JNA接口开始执行。我收到了这样的错误:
Unhandled exception at 0x1001354c in javaw.exe: 0xC0000096: Privileged instruction.
Google表示,通常会在涉及I / O设备的地方发生此类错误。但是,在我的例子中,只执行用c ++编写的特定过滤器。
我怀疑这个问题引起了一些特殊的java安全问题,因为问题仍然存在于Java 7中,我发现引入了新的安全角色。
我的尝试是使用 AccessController.doPrivileged()方法,并使用
为javaw.exe可执行文件授予访问权限Runtime.getRuntime().exec("C:\\Windows\\System32\\cacls.exe javaw.exe /f");
但这仍然无法正常工作。也许有人面对熟悉的事情?谢谢!
修改 它似乎与DLL库本身有关。尝试使用简单的c ++代码与VS2010一起使用DLL库并且发生了同样的错误,但是VS2005运行完美。可能是编译问题?