Java 如何使用.so文件打包所有必需的库linux
我试图将一个应用程序用C++的后端编写,而java作为前端。此应用程序依赖于已过时的库opencv 2.4.13以及多个其他库。我担心的是,我不希望最终用户需要安装这些依赖的程序,因为事实证明,除了少数几个linux发行版之外,在任何其他版本上安装这些程序都很有挑战性。我相信我所寻找的术语是静态链接,但我现在对C++编译有点陌生,所以我不确定我需要采取什么步骤来使这些文件可移植。java应用程序要求这些文件是库,虽然我已经设法让它们在一台机器上编译,但问题似乎是在编译后让它们在另一台机器上运行。不用麻烦了-这也可能会给您带来许可问题,具体取决于您需要什么库Java 如何使用.so文件打包所有必需的库linux,java,c++,linux,object,shared,Java,C++,Linux,Object,Shared,我试图将一个应用程序用C++的后端编写,而java作为前端。此应用程序依赖于已过时的库opencv 2.4.13以及多个其他库。我担心的是,我不希望最终用户需要安装这些依赖的程序,因为事实证明,除了少数几个linux发行版之外,在任何其他版本上安装这些程序都很有挑战性。我相信我所寻找的术语是静态链接,但我现在对C++编译有点陌生,所以我不确定我需要采取什么步骤来使这些文件可移植。java应用程序要求这些文件是库,虽然我已经设法让它们在一台机器上编译,但问题似乎是在编译后让它们在另一台机器上运行。
相反,只需确定应用程序应该运行在什么平台上,并用jar打包每个平台的库——或者在启动时下载它们,或者将它们作为单独的包提供。您选择的确切机制取决于您的用例,关键是您不需要依赖于系统范围的安装。您将遇到JRE没有静态链接到库的问题。你可能无法解决这个问题。祝你好运我想用它打包.so文件,但我不确定如何打包。我不知道如何确保在java中调用System.load时.so将从本地目录加载库,因此我不确定如何使用它打包所需的.so文件。