1

我创建了一个 dll 并在我的 java 程序中使用。
它在 Windows XP 和 Windows 7 上运行良好。但是当我在 Windows Vista 上使用相同的程序时,我收到 Unsatisfied Link 错误。
我知道 System.loadlibrary() 在 Vista 上不起作用(请参阅此)。
请向我建议一些 System.loadlibrary() 的替代方法。

4

3 回答 3

1

System.loadlibrary() 在 Vista 上运行良好。您的问题是找不到 DLL 或其依赖项之一。很可能是您需要安装适当的 MSVC 运行时。有时您在某些机器上没有这样做就可以逃脱,因为其他一些应用程序已经安装了运行时。

如果您无法从本机代码编译器的文档中解决此问题,我建议您在配置文件模式下使用 Dependency Viewer 来调试 System.loadlibrary 故障。

于 2012-04-13T07:06:31.217 回答
1

System.Loadlibrary 在 Vista 中工作正常,您的链接指向特定库的问题,而不是 LoadLibrary 本身。作为 LoadLibrary 的替代方法,您可以使用 System.Load 并提供绝对路径(至少像这样您会知道您的库是否可以加载)

于 2012-04-13T07:11:48.890 回答
0

我宁愿使用 Dependency Walker (http://www.dependencywalker.com/) 之类的工具从您的 DLL 中“调用”哪些库

如果路径上缺少 DLL,此应用程序可以告诉您。您还可以在启动 java 程序之前检查 shell 变量 PATH。

希望能帮助到你。

于 2012-04-13T07:05:11.437 回答