簡體   English   中英

如何為32位和64位計算機分發依賴於DLL的應用程序

[英]How to distribute an application that relies on DLL's for 32-bit and 64-bit machines

我有一個使用第三方jar(utils.jar)的應用程序,它調用第三方DLL(utils.dll)。 jar文件管理對DLL的調用,包括DLL的名稱。 有一個32位版本和64位版本的DLL。

目前,該應用程序只能在32位計算機上運行。 當我嘗試在64位機器上運行它時,它會告訴我

Can't load IA 32-bit .dll on a AMD 64-bit platform

當我用64位替換32位dll時,它工作正常。 如果可以避免它,我不想維護兩個單獨的版本(一個使用32位庫,另一個使用64位庫)。 有沒有辦法構建應用程序,以便它可以找出它需要使用哪個版本的庫?

我們的項目是使用Ant構建的,但我可以在必要時探索其他替代方案。

您必須創建一個額外的ant目標,以便它始終構建應用程序的x32和x64變體。

我不想保留兩個單獨的版本

如果螞蟻你的skript總是產生兩個交付,它沒有多少額外的努力。

當你執行loadLibary時,你可以使用System.getProperty("os.arch")組成庫名。 因此,您捆綁所有dll,並在運行時選擇相關版本。

對於部署Java桌面應用程序,最好的選擇通常是安裝應用程序。 使用Java Web Start 1 JWS適用於Windows,OS X和* nix。

  1. JWS提供了許多吸引人的功能,包括但不限於啟動屏幕,桌面集成,文件關聯,自動更新(包括延遲下載和程序控制更新), 按照平台,架構或Java版本對配置進行本機和其他資源下載 ,配置運行時環境(最小J2SE版本,運行時選項,RAM等),使用擴展輕松管理公共資源。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM