在vista上替换System.loadlibrary()

时间:2012-04-13 06:57:02

标签: java dll windows-vista loadlibrary

我创建了一个dll并在我的java程序中使用 它在Windows XP和Windows 7上工作正常。但是当我在Windows Vista上使用相同的程序时,我收到了不满意的链接错误。
我发现System.loadlibrary()在Vista上不起作用(see this)。
请为System.loadlibrary()建议一些替代方法。

3 个答案:

答案 0 :(得分:1)

System.loadlibrary()在Vista上运行正常。您的问题是无法找到DLL或其中一个依赖项。最有可能的是您需要安装适当的MSVC运行时。你有时会在某些机器上没有这样做,因为其他应用程序已经安装了运行时。

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

我宁愿查看哪些图书馆被称为'使用Dependency Walker(http://www.dependencywalker.com/)等工具从您的DLL中获取

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

希望它有所帮助。