使用 cmd 从 java swing 向 Keytool 传递参数
Passing parameters to Keytool from java swing using cmd
我正在尝试为 keytool 创建一个简单的用户界面,以简化证书生成过程。我知道有更好的方法可以做到这一点,创建 java swing 界面并不是最佳解决方案。
我正在从 swing 组件获取必要的参数并将其传递给 keytool,如下所示:
try {
Process p = Runtime
.getRuntime()
.exec("cmd /c start cmd.exe /K \"keytool.exe &"+command.toString()+" end\"");
} catch (IOException e) {
e.printStackTrace();
}
现在的问题是在传递参数后没有任何反应,cmd 仅显示 keytool 中的可用选项。(与在 cmd 中输入 keytool 相同)
这里可以找到command的值 String:
command.append("keytool -genkey");//hardcoded for now, I'm using this method only
command.append(" ");
command.append("-keyalg");
command.append(" ");
command.append(algorithm.getSelectedItem()); //comboBox, value RSA/DSA/...
command.append(" ");
command.append("-alias");
command.append(" ");
command.append(alias.getText());//textfield value signedKey
command.append(" ");
command.append("-keystore");
command.append(" ");
command.append("selfsigned.jks");//hardcoded for now
command.append(" ");
command.append("-validity");
command.append(" ");
command.append(validity.getText());//textfield, value 365
command.append(" ");
command.append("-keysize");
command.append(" ");
command.append(keySize.getText());//depends on selected algorithm, values 2048/1024/...
我是 keytool 的新手,出于某种原因我真的搞不懂这里出了什么问题,是我的方法还是我传递的参数...
P.S:命令示例 字符串:keytool -genkey -keyalg RSA -alias signedKey -keystore selfsigned.jks -validity 365 -keysize 2048
问题出在我用来传递参数的字符串中 cmd /c start cmd.exe /K "keytool.exe &-genkey -keyalg RSA -alias signedKey -keystore selfsigned.jks -validity 365 -keysize 2048 end"
end
造成了问题,一旦它被删除,一切都很好。
特别感谢吉姆·加里森
我正在尝试为 keytool 创建一个简单的用户界面,以简化证书生成过程。我知道有更好的方法可以做到这一点,创建 java swing 界面并不是最佳解决方案。
我正在从 swing 组件获取必要的参数并将其传递给 keytool,如下所示:
try {
Process p = Runtime
.getRuntime()
.exec("cmd /c start cmd.exe /K \"keytool.exe &"+command.toString()+" end\"");
} catch (IOException e) {
e.printStackTrace();
}
现在的问题是在传递参数后没有任何反应,cmd 仅显示 keytool 中的可用选项。(与在 cmd 中输入 keytool 相同)
这里可以找到command的值 String:
command.append("keytool -genkey");//hardcoded for now, I'm using this method only
command.append(" ");
command.append("-keyalg");
command.append(" ");
command.append(algorithm.getSelectedItem()); //comboBox, value RSA/DSA/...
command.append(" ");
command.append("-alias");
command.append(" ");
command.append(alias.getText());//textfield value signedKey
command.append(" ");
command.append("-keystore");
command.append(" ");
command.append("selfsigned.jks");//hardcoded for now
command.append(" ");
command.append("-validity");
command.append(" ");
command.append(validity.getText());//textfield, value 365
command.append(" ");
command.append("-keysize");
command.append(" ");
command.append(keySize.getText());//depends on selected algorithm, values 2048/1024/...
我是 keytool 的新手,出于某种原因我真的搞不懂这里出了什么问题,是我的方法还是我传递的参数...
P.S:命令示例 字符串:keytool -genkey -keyalg RSA -alias signedKey -keystore selfsigned.jks -validity 365 -keysize 2048
问题出在我用来传递参数的字符串中 cmd /c start cmd.exe /K "keytool.exe &-genkey -keyalg RSA -alias signedKey -keystore selfsigned.jks -validity 365 -keysize 2048 end"
end
造成了问题,一旦它被删除,一切都很好。
特别感谢吉姆·加里森