我想在按钮按下去后,显示一个对话框,要求输入证书的别名,我不知道keytool该怎么用,就想用调用cmd来调用keytool,不知道高手能不能指教下别的方法,还有那个-alias参量后面的值似乎应该直接是一个名字,这里可以用变量么?不可以的话该怎么办另外-dname “cn=XXX”这个参量中XXX是也是字符串,怎么用变量,双引号里面好像没用,用%s格式化是否正确?能不能给个例子
public void actionPerformed(ActionEvent event){
String inputValue = JOptionPane.showInputDialog("请输入证书别名");
Runtime.getRuntime().exec(
keytool -export -alias inputValue -file C:/TC.cer -keystore C:/
)


}

解决方案 »

  1.   

    对Keytools楼主看下这个链接:
    http://www.blogjava.net/fingki/archive/2008/04/16/193463.html
    变量要你在上层方法中传入,然后组成DOS命令再执行。 %S是C语言里的,Java里通常是传参数。
      

  2.   

    这个要用到Bouncy Castle Crypto API,去这个网站下载对应版本,里面例子非常全,自已找。:http://www.bouncycastle.org/
      

  3.   

    不太懂啊第一次碰java,是做个作业,老师要求点了一个按钮后根据textfield填入的信息生成证书,要求调用keytool,不知道该怎么写,请高手给段例子吧
      

  4.   

    老师就是让你调用dos命令行keytools来实现。
    你在提问时的代友,已经说明你知道怎么调用命令行,因为你这个要用GUI,即使有人帮你写好代码,你整合上还可能有很大困难,给你的代码片断吧,如果这个看不懂,还是先问下同学吧。
    public void generateCert(String alias, String dname,String cn, File keyStoreFile) {
            Runtime.getRuntime().exec("keytool -export -alias " 
             +alias+" -file " + keyStoreFile.getAbsolutePath() +" -keystore .......
                    ) }
      

  5.   

    即然你在命令行下知道怎么用,那就把那个命令行组装好放进Runtime.getRuntime().exec就行了