【发布时间】:2013-07-26 18:02:22
【问题描述】:
我有一个使用第 3 方 jar (utils.jar) 的应用程序,它调用第 3 方 DLL (utils.dll)。 jar 文件管理对 DLL 的调用,包括 DLL 的名称。 DLL 有 32 位版本和 64 位版本。
目前,该应用程序只能在 32 位机器上运行。当我尝试在 64 位机器上运行它时,它告诉我
Can't load IA 32-bit .dll on a AMD 64-bit platform
当我用 64 位替换 32 位 dll 时,它工作正常。如果可以避免的话,我不想维护两个单独的版本(一个使用 32 位库,另一个使用 64 位库)。有没有办法构建应用程序,以便确定它需要使用哪个版本的库?
我们的项目是使用 Ant 构建的,但如有必要,我可以探索其他替代方案。
【问题讨论】:
-
最老套的方法是将 JAR 或 DLL 捆绑为资源,并在第三方 JAR 加载之前启动应用程序时将正确的放在 PATH 上。假设您的应用程序可以随意写入文件系统。
-
这是桌面应用吗?
标签: java ant desktop-application native-code