Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用.so文件打包所有必需的库linux_Java_C++_Linux_Object_Shared - Fatal编程技术网

Java 如何使用.so文件打包所有必需的库linux

Java 如何使用.so文件打包所有必需的库linux,java,c++,linux,object,shared,Java,C++,Linux,Object,Shared,我试图将一个应用程序用C++的后端编写,而java作为前端。此应用程序依赖于已过时的库opencv 2.4.13以及多个其他库。我担心的是,我不希望最终用户需要安装这些依赖的程序,因为事实证明,除了少数几个linux发行版之外,在任何其他版本上安装这些程序都很有挑战性。我相信我所寻找的术语是静态链接,但我现在对C++编译有点陌生,所以我不确定我需要采取什么步骤来使这些文件可移植。java应用程序要求这些文件是库,虽然我已经设法让它们在一台机器上编译,但问题似乎是在编译后让它们在另一台机器上运行。

我试图将一个应用程序用C++的后端编写,而java作为前端。此应用程序依赖于已过时的库opencv 2.4.13以及多个其他库。我担心的是,我不希望最终用户需要安装这些依赖的程序,因为事实证明,除了少数几个linux发行版之外,在任何其他版本上安装这些程序都很有挑战性。我相信我所寻找的术语是静态链接,但我现在对C++编译有点陌生,所以我不确定我需要采取什么步骤来使这些文件可移植。java应用程序要求这些文件是库,虽然我已经设法让它们在一台机器上编译,但问题似乎是在编译后让它们在另一台机器上运行。

不用麻烦了-这也可能会给您带来许可问题,具体取决于您需要什么库


相反,只需确定应用程序应该运行在什么平台上,并用jar打包每个平台的库——或者在启动时下载它们,或者将它们作为单独的包提供。您选择的确切机制取决于您的用例,关键是您不需要依赖于系统范围的安装。

您将遇到JRE没有静态链接到库的问题。你可能无法解决这个问题。祝你好运我想用它打包.so文件,但我不确定如何打包。我不知道如何确保在java中调用System.load时.so将从本地目录加载库,因此我不确定如何使用它打包所需的.so文件。