【问题标题】:UnsatisfiedLinkError "Access is denied" even with Full ControlUnsatisfiedLinkError“访问被拒绝”即使完全控制
【发布时间】:2011-01-09 21:01:47
【问题描述】:

我收到来自 java.lang.ClassLoader$NativeLibrary.load() 的 java.lang.UnsatisfiedLinkError 消息“访问被拒绝”。 DLL 正在通过 UNC 路径从网络共享加载。它以前在其他网络共享上工作没有错误(系统管理员告诉我,这个特定的共享更“本机 Windows”),所以我的第一反应是使用 cacls 为所有人和运行 Java 代码的特定用户。当我在 Windows 资源管理器中查看 DLL 属性时,它显然设置了这些权限,但它仍然失败并出现此错误。有什么想法吗?

【问题讨论】:

    标签: java windows java-native-interface dll


    【解决方案1】:

    一种可能是这个 dll 反过来又试图加载其他没有被授予足够权限的 dll。

    【讨论】:

    • 嗯...这不会反映在错误消息中,因为此时加载源自本机代码?
    • 是的,目录中还有一个 libdb47.dll。使用 cacls 对此进行授权似乎已经成功了。
    • 遇到此问题的人的另一种可能性是,某些 jar 提取 DLL 文件以使用它们,并且需要将其提取到具有正确权限的文件夹中。就像在这种情况下:github.com/xerial/sqlite-jdbc/issues/97
    【解决方案2】:

    以系统管理员身份运行它,它肯定会工作。我遇到了同样的问题,并以管理员身份运行 Eclipse,它工作正常。

    【讨论】:

    • 以管理员身份运行还会将软件中的任何每个用户的安全问题升级为每个系统的安全问题。这充其量只是一种临时解决方法,即使这样也只能作为最后的手段。
    猜你喜欢
    • 1970-01-01
    • 2022-01-20
    • 2013-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多