1

您好,我正在使用 sshxcute 框架来访问 Linux 服务器。这个想法是从一个 java 项目执行一个用 gcc 编译的应用程序。这个 gcc 应用程序具有下一个依赖项:

    libdl.so.2 => /lib64/libdl.so.2 (0x000000300ca00000)
    libocci.so.11.1 => /e01/demov7/lib/libocci.so.11.1 (0x00002ac507b33000)
    libclntsh.so.11.1 => /u01/app/oracle/product/11gR2/lib/libclntsh.so.11.1 (0x00002ac507e2e000)
    libnnz11.so => /u01/app/oracle/product/11gR2/lib/libnnz11.so (0x00002ac50a459000)
    libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x000000301ec00000)
    libm.so.6 => /lib64/libm.so.6 (0x000000300c600000)
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x000000301ac00000)
    libc.so.6 => /lib64/libc.so.6 (0x000000300c200000)
    /lib64/ld-linux-x86-64.so.2 (0x000000300be00000)
    libpthread.so.0 => /lib64/libpthread.so.0 (0x000000300ce00000)
    libnsl.so.1 => /lib64/libnsl.so.1 (0x000000300fa00000)
    libaio.so.1 => /usr/lib64/libaio.so.1 (0x0000003a92800000)

但是当我尝试执行我的应用程序时,我遇到了下一个错误

加载共享库时出错:libocci.so.11.1:无法打开共享对象文件:没有这样的文件或目录

我是否需要执行 somme 命令或配置一些环境变量以允许访问服务器库?

我在这里附上了我的代码。

        SSHExec ssh = null;
        ConnBean cb = new ConnBean("127.0.0.1", "user", "password");
        ssh = SSHExec.getInstance(cb);

        CustomTask ct1 = new ExecCommand("./myapplication");
        ssh.connect();           

        Result res = ssh.exec(ct1);

        if (res.isSuccess) {
            response = res.sysout;
        } else {
            response = res.error_msg;
        }

        ssh.disconnect() ;
4

2 回答 2

2

.bashrc文件和设置LD_LIBRARY_PATH以及PATH变量与共享库的路径一起使用,使用 ssh 执行完美!与共享库的所有依赖关系都已解决。感谢拉尔斯曼

于 2013-08-27T15:18:48.060 回答
2

尝试设置LD_LIBRARY_PATH以包含自定义库目录,例如

LD_LIBRARY_PATH=/e01/demov7/lib:/u01/app/oracle/product/11gR2/lib
于 2013-08-23T19:50:54.673 回答