Java JNativeHook_6363198016012433909.dll:访问被拒绝

Java JNativeHook_6363198016012433909.dll:访问被拒绝,java,dll,Java,Dll,我有这些错误,我怎样才能修复它。 有些用户可以访问这些,而且没有问题,但有些用户不能。这是一个奇怪的随机错误,有时会在Windows 7和Windows 8上出现。有一天一切正常,当Java试图访问临时文件夹中的DLL时,突然出现访问被拒绝的异常 我发现删除临时文件夹并让它自动重新创建通常可以解决问题 如果您是将DLL放入临时文件夹的代码的作者,那么我建议您更改代码,将DLL放入此路径下的文件夹中,因为我还没有看到此问题:%USERPROFILE%\AppData\Local\ 我在某个地方读到

我有这些错误,我怎样才能修复它。
有些用户可以访问这些,而且没有问题,但有些用户不能。

这是一个奇怪的随机错误,有时会在Windows 7和Windows 8上出现。有一天一切正常,当Java试图访问临时文件夹中的DLL时,突然出现访问被拒绝的异常

我发现删除临时文件夹并让它自动重新创建通常可以解决问题

如果您是将DLL放入临时文件夹的代码的作者,那么我建议您更改代码,将DLL放入此路径下的文件夹中,因为我还没有看到此问题:%USERPROFILE%\AppData\Local\

我在某个地方读到,这可能是由Microsoft Security Essentials引起的,但它看起来并不是安装在刚刚遇到此问题的计算机上

我在许多不同的DLL文件中看到过这种情况,比如jna.DLL

如果您使用的是JNA,并且它有这个问题,那么您可以更改temp directory系统属性,JNA将在不同的目录中创建该文件。此代码应该适用于此

Exception in thread "AWT-EventQueue-0" java.lang.UnsatisfiedLinkError: C:\Users\Kelvz1\AppData\Local\Temp\JNativeHook_6363198016012433909.dll: Access is denied
    String osName = System.getProperty("os.name");
    if (osName.toLowerCase().startsWith("windows")) {
        // we change the temp directory because sometimes Windows is stupid and doesn't want to load jna.dll from the temp directory
        File tempDir = new File(System.getenv("USERPROFILE") + "\\AppData\\Local\\MyCompany\\temp");
        System.out.println("Using temp dir: " + tempDir.getPath());
        tempDir.mkdirs();
        System.setProperty("java.io.tmpdir", tempDir.getPath());
    }