我尝试运行创建文件的shell进程,但没有创建文件。但是我的输出线看起来很棒!
String s = "openssl x509 -inform pem -pubkey -noout -in cert.pem > pubkey.pem";
System.out.println(s);
System.out.println(System.getProperty("user.dir"));
try {
Process p = Runtime.getRuntime().exec(s);
System.out.println("public key extracted");
} catch (IOException e1) {System.out.println("IOException");
} catch (Exception e) {System.out.println("Exception");
}
有趣的是,当我从控制台上复制该字符串并将其粘贴到终端时,这非常有效。我已经将这种确切的shell方法用于其他OpenSSL命令,并且它工作正常。非常困惑为什么这不起作用。
如果您不确定这里应该发生什么,那么磁盘上会有一个名为cert.pem
的x509文件。此命令读取该文件,从中提取公钥,并将该密钥放入名为pubkey.pem
的文件中。但最后,我没有名为pubkey.pem
的文件。就像我说的那样,如果我在终端命令提示符中输入那条确切的行,那么文件就会完美地创建。
感谢您的任何建议。
编辑:我还应该提一下,我打印出当前目录,所以我知道这不是问题。