【问题标题】:UnsatisfiedLinkError : Native library 'wcepeer' not found (Mysaifu)UnsatisfiedLinkError:找不到本机库“wcepeer”(Mysaifu)
【发布时间】:2018-06-07 07:55:57
【问题描述】:

我正在尝试用 Java 编写一个可以在 Windows CE 操作系统中执行的应用程序。

为此,我在我的 Windows PC 上使用 Eclipse,然后将 .jar 文件传输到使用 Windows CE 运行的“较小”系统中。然后使用 Mysaifu JVM 执行 .jar 文件(因为我们需要 JVM 来在 Windows CE 中执行 Java 程序)。

所以我从一个简单的应用程序开始,它将启动一个窗口(使用 JFrame),当我尝试执行它时,我收到一条错误消息:

java.lang.UnsatisfiedLinkError: 未找到本机库“wcepeer”(如 文件'wcepeer')在 gnu.classpath.boot.library.path 和 java.library.path

我已尝试验证代表本机库的文件 (wcepeer.dll) 是否在正确的文件夹中,并且我可以看到该文件与其他库文件一起存在,例如wcesound.dllwcesecurity.dll 等。通常这些文件在我安装时在 Program Files/Mysaifu JVM/jre/bin 中提供我的 Windows CE 系统上的 JVM。

我还尝试使用 System.loadLibrary() 验证 wcepeer 库的存在:

   try {
       System.loadLibrary("wcepeer");          } catch(UnsatisfiedLinkError e) {
        System.err.println("Native code library failed to load.\n" + e);       }

结果是:

本机代码库加载失败。 java.lang.UnsatisfiedLinkError:未找到本机库“wcepeer”(如 文件'wcepeer')在 gnu.classpath.boot.library.path 和 java.library.path

但是,例如,当我将“wcepeer”替换为“wcesound”时,没有错误。所以我认为 wcepeer.dll 文件有问题,但我不知道如何解决。我在网上到处搜索,只有一个关于这个的论坛,但它并没有太大帮助。

提前感谢您的帮助。

您好,

【问题讨论】:

    标签: java eclipse jvm windows-ce


    【解决方案1】:

    您可以使用dependency walker (http://www.dependencywalker.com/) 打开您的DLL(它也适用于CE dll,因为它们使用与Windows 相同的格式)并查看此DLL 具有哪些依赖项。 可能需要其他 DLL(如果它们通过导出库静态链接,您的 DLL 无论如何都将无法加载),或者 DLL 需要您的设备不支持的某些系统 DLL 或 API。 Windows CE 是一个组件化的操作系统,因此您可能有一组不同的 API,具体取决于您在操作系统映像中包含的组件。

    【讨论】:

    • 感谢@Valter Minute 的回复。我发现aygshell.dll 和coredll.dll 不见了。你能告诉我一些关于这些文件的信息吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-19
    • 1970-01-01
    • 2015-03-31
    • 2013-06-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多