首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法加载Ubuntu中的Aspera库

无法加载Ubuntu中的Aspera库
EN

Stack Overflow用户
提问于 2019-08-09 06:46:53
回答 1查看 226关注 0票数 0

我试图使用Aspera High Speed API将文件从on加载到。它在Mac中工作得很好,但是当在Ubuntu 18.0.4上运行相同的代码时,它会产生以下错误。

未能从候选libfaspmanager2.so位置加载Aspera动态库: /root/.aspera/cos-aspera/0.1.163682

与受抚养人:

代码语言:javascript
复制
    <dependency>
        <groupId>com.ibm.cos-aspera</groupId>
        <artifactId>cos-aspera-linux-64</artifactId>
        <version>0.1.163682</version>
    </dependency>

请确保在env变量下面设置:

代码语言:javascript
复制
a) export LD_LIBRARY_PATH=/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64

b) export LD_PRELOAD=/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/libjsig.so

使用以下java:

openjdk版本"1.8.0_222“OpenJDK运行时环境(build 1.8.0_222-8u222-b10-1ubuntu1~18.04.1-b10) OpenJDK 64位服务器VM (build 25.222-b10,混合模式)

EN

回答 1

Stack Overflow用户

发布于 2019-10-31 14:19:47

您可以尝试对加载本机lib的java代码进行反编译。(例如使用JAD)。

您可以在: com.ibm.cloud.objectstorage.services.aspera.transfer.AsperaLibraryLoader中找到这一点。

以下是一种方法:

代码语言:javascript
复制
public static void loadLibrary(File extractedPath, List<String> candidates) {
    for (String lib : candidates) {
        File libPath = new File(extractedPath, lib);
        String absPath = libPath.getAbsolutePath();
        log.debug("Attempting to load dynamic library: " + absPath);
        try {
            System.load(absPath);
            log.info("Loaded dynamic library: " + absPath);
            return;
        } catch (UnsatisfiedLinkError e) {
            log.debug("Unable to load dynamic library: " + absPath, e);
        }
    }
    throw new RuntimeException("Failed to load Aspera dynamic library from candidates " + candidates + " at location: " + extractedPath);
}

您可以尝试复制错误并通过编译获得实际消息:

代码语言:javascript
复制
public class TestLoad { public static void main(String[] args) {
    System.load("/root/.aspera/cos-aspera/0.1.163682/libfaspmanager2.so");
}}

在windows上,由于缺少libfaspmanager2.so lib的依赖关系,类似的问题。通过将丢失库所在的文件夹添加到路径来修正。

在Linux上,通过以下方式检查依赖项:

代码语言:javascript
复制
ldd /root/.aspera/cos-aspera/0.1.163682/libfaspmanager2.so

如果缺少deps,则向LD_LIBRARY_PATH添加文件夹路径。

另一注:

java库配备了Apache:https://commons.apache.org/proper/commons-logging/guide.html

所以,激活日志,得到更好的想法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57424730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档