Java独立应用程序和DLL访问/更新

问题描述:

我正在开发一个简单的独立Java应用程序,它使用(单个)dll。到现在为止还挺好。问题是这个DLL的老版本已经存在于大多数用户的PC中(c:\ windows \ myDLL.dll,因此它在PATH中)。Java独立应用程序和DLL访问/更新

我希望应用程序能够使用自己的dll,即位于其“lib”目录中的较新版本。

任何想法?我甚至认为我可以交换dll(如果应用程序在c:\ windows中找到旧版本,那么它可能会覆盖它),但它显然是被应用程序本身锁定的,加载时可能会打开PATH中的dll。

我注意到你在.war文件中部署了DLL。在这种情况下,您需要从.war文件中提取它(在应用程序启动时),将它写入某处,然后通过System.load()引用绝对路径。有关更多详情,请参阅this answer

+0

使用NetBeans,我在properties/run部分中定义了-Djava.library.path,但是我没有得到任何结果,可能是因为我不知道如何让应用程序查看它的.war文件... – Bya

+0

如果你在* war文件中部署DLL *,你必须在运行时解压缩它,保存在某处(比如c:\ temp dir),然后从那里引用它。您不能使用java.library.path来引用* jar文件中的* * –

+0

请参阅https://*.com/a/17745868/12960 –