如何从命令行与java交互使用keytool?
我试过keytool-genkeypair。我必须按enter键,然后输入keytool要求的信息,然后再次按enter键。我试着取消了新的线路和回车,但没有效果。我想先输入信息,然后按enter键一次如何从命令行与java交互使用keytool?,java,bash,interface,interactive,Java,Bash,Interface,Interactive,我试过keytool-genkeypair。我必须按enter键,然后输入keytool要求的信息,然后再次按enter键。我试着取消了新的线路和回车,但没有效果。我想先输入信息,然后按enter键一次 import java.io.*; public class Main{ public static void main(String[] args){ Process p; ProcessBuilder pb;
import java.io.*;
public class Main{
public static void main(String[] args){
Process p;
ProcessBuilder pb;
DataOutputStream DOS;
BufferedReader BR;
OutputStream os;
InputStream is;
Console cons = System.console();
String s;
while(!(s=cons.readLine()).equals("exit")){
try{
pb = new ProcessBuilder(s.split("\\s"));
pb.inheritIO();
p = pb.start();
os = p.getOutputStream();
is = p.getInputStream();
DOS = new DataOutputStream(new BufferedOutputStream(os));
BR = new BufferedReader(new InputStreamReader(is));
byte b;
while(p.isAlive()){
char[] c = cons.readLine().toCharArray();
for(int i=0;i<c.length;i++){
if(c[i]!='\r'&c[i]!='\n'){
DOS.writeChar(c[i]);
}
}
}
}catch(Exception e){ System.out.println("Bad Command"); }
}
}
}
import java.io.*;
公共班机{
公共静态void main(字符串[]args){
过程p;
ProcessBuilder pb;
数据输出流DOS;
缓冲剂;
输出流;
输入流为;
Console cons=System.Console();
字符串s;
而(!(s=cons.readLine()).equals(“退出”)){
试一试{
pb=新的ProcessBuilder(s.split(“\\s”);
pb.inheritIO();
p=pb.start();
os=p.getOutputStream();
is=p.getInputStream();
DOS=新的数据输出流(新的缓冲输出流(os));
BR=新的BufferedReader(新的InputStreamReader(is));
字节b;
while(p.isAlive()){
char[]c=cons.readLine().toCharArray();
对于(int i=0;i)您需要将行终止符发送到进程。当readLine()
删除行终止符时,您必须为它们测试的代码是毫无意义的。只需执行DOS.write(line+“\r\n”);
,其中line
是readLine()
的字符串
结果。您还应该在readLine()时循环
没有返回null,而p.isAlive()
。您需要将行终止符发送到进程。当readLine()
删除行终止符时,您必须测试它们的代码是毫无意义的。只需执行DOS.write(line+“\r\n”);
,其中line
是readLine()的字符串
结果
。您还应该在readLine()
未返回null时循环,而不是在p.isAlive()时循环。