UnsatisfiedLinkError:本地库' wcepeer'找不到(Mysaifu)

时间:2018-06-07 07:55:58

标签: java eclipse jvm windows-ce

我试图用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.dll wcesecurity.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 文件存在问题,但我不知道如何解决它。我在网上到处搜索,这里只有一个关于此的论坛,但它并没有太多帮助。

提前感谢您的帮助。

请问,

1 个答案:

答案 0 :(得分:0)

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