我需要在 android 中以编程方式运行 OpenSSL 命令,但它会抛出以下错误:
“无法运行程序“openssl”:错误=2,没有那个文件或目录”
这是我的代码:
public class MainActivity extends AppCompatActivity {
@SuppressLint("MissingInflatedId")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
executeSH("openssl ecparam -name prime256v1 -genkey -noout -out prime-private-key.pem",true);
}
private String executeSH(String command, boolean waitFor) throws IOException, InterruptedException {
Process process = null;
InputStream inputStream = null;
InputStreamReader inputStreamReader = null;
BufferedReader bufferedReader = null;
String line, output = "";
try {
Runtime runtime = Runtime.getRuntime();
process = runtime.exec(command);
inputStream = process.getInputStream();
inputStreamReader = new InputStreamReader(inputStream);
bufferedReader = new BufferedReader(inputStreamReader);
while ((line = bufferedReader.readLine()) != null) {
output += line;
File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS);
File newDir = new File(path + "/" + "a.txt");
if (!newDir.exists()) {
newDir.mkdir();
}
FileOutputStream writer = new FileOutputStream(new File(path, "a.txt"));
writer.write(output.getBytes());
writer.close();
Log.e("TAG", "Wrote to file: " + "a.txt");
}
if (waitFor) {
process.waitFor();
}
return output;
}
finally {
if (bufferedReader != null) bufferedReader.close();
if (inputStreamReader != null) inputStreamReader.close();
if (inputStream != null) inputStream.close();
if (process != null) process.destroy();
}
}
也许有人可以帮我解决这个问题