【问题标题】:Windows 10 update - java "The specified module could not be found."Windows 10 更新 - java“找不到指定的模块。”
【发布时间】:2016-06-20 06:51:45
【问题描述】:

我的电脑一直开机,几个月来它提示我从 win7 更新到 win10。我总是拒绝,但有一天早上我发现我的电脑更新了,并且出现了一个新问题。

我有几个在 win7 上运行良好的 java 项目,现在我不能使用 DLL,错误是“java.lang.UnsatisfiedLinkError: Unable to load library 'CidGen64.dll': The specified module could not被发现”。

该问题仅出现在 NetBeans 中,当我使用 JRE 运行应用程序时,它工作正常。我试图像这样更改libpath,但错误是一样的。

System.setProperty("java.library.path", LibPath);

更新1: 这不是重复的,我应用了假定重复中的步骤并且不起作用。这是 Windows 10 Netbeans 或 JDK 问题。

更新2: 我发布了一个在 XP 中工作的 NetBeans 项目(我没有更多的 win7)并且在 Windows 10 中失败。The project is here

【问题讨论】:

  • 这是一道java编程题。我在 NetBeans 工作。这段代码一直有效,直到我更新到 Windows 10。我尝试从 java 代码和“java -Djava.library.path=”设置 libpath。我用 "System.err.println("LibPath1 "+System.getProperty("java.library.path"));" 检查了 libpath 是否正确这显示了 DLL 所在的目录。只有 JDK 受此问题影响。我在 JRE 中运行应用程序很好。
  • 这不是重复的,我应用了假定重复中的步骤并且无法正常工作。这是 Windows 10 Netbeans 或 JDK 问题。从代码中设置 java.library.path 也应该可以。

标签: java dll windows-10


【解决方案1】:

让我们从问题所在开始。并不是说带有 DLL 的 Java 程序不能在 Windows 10 上运行。这是不可信的。如果这是真的,尖叫声到现在已经在地球周围传了数千次了。

对我来说,有两种可能的解释:

  1. 您的 JDK 和/或 Netbeans 安装因升级而中断。解决方案:卸载两者,下载最新版本并重新安装。

  2. 不知何故,您没有正确指定库路径。例如,您说您“检查了 libpath 是否正确”...但您实际上并没有告诉我们它是什么。 (我能想到 3 种不明显的方式可能是错误的。)


另一种可能是 32 位 JVM 与 64 位 DLL 的问题。但是,这与您提供的证据不符。文件权限的一些问题同上。


从代码中设置 java.library.path 也应该可以工作

这取决于:

  1. 您设置了正确的库路径,并且
  2. setProperty 调用很快就会发生。

最后,如果您将-verbose:jni 添加到 java 命令,它应该会告诉您它从哪里加载本机库,并且(我认为)在库加载失败时为您提供更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-31
    • 1970-01-01
    • 2015-12-16
    • 2016-03-10
    相关资源
    最近更新 更多