0

在我的 android 应用程序中,我在 /res 文件夹 (/res/raw) 中创建了一个“原始”文件夹。“原始”文件夹包含一个文件(一个无需密码即可连接 sftp 的公钥/私钥文件)。

我正在使用 Jsch 库使用公钥/私钥连接到 sftp。为了设置密钥文件,我需要一个密钥文件所在的路径。Jsch设置私钥文件路径的方法是:

    JSch ssh = new JSch();
    ssh.addIdentity("path/to/key/file/filename");

我应该为密钥文件传递什么路径?传递“res/raw/filename”给出java.io.FileNotFoundException: /res/raw/firmware_key (No such file or directory)

4

2 回答 2

1

为了设置密钥文件,我需要一个密钥文件所在的路径。

然后,您需要将资源复制到文件中。资源没有文件——它是 APK 文件中的一堆字节。用于getResources().openRawResource()获取InputStream可用于将数据复制到内部存储中的文件。

于 2012-06-29T14:42:36.230 回答
0

你可以这样做。

ssh.addIdentity("android.resource://com.mypackage.myapp/raw/firmware_key");

com.mypackage.myapp您的应用程序根包在哪里。

问候, 阿基夫·哈米德

于 2012-06-29T14:33:16.363 回答