我正在尝试使用codehaus –
http://mojo.codehaus.org/keytool/keytool-api/index.html中的mojo keytool API
我已经设置了一个示例项目,只是尝试通过API执行changeAlias请求.
这是我的示例代码:
KeyToolChangeAliasRequest request = new KeyToolChangeAliasRequest();
request.setVerbose(true);
request.setKeystore("keystore.ks");
request.setStorepass("keypass");
request.setAlias(oldAlias);
request.setKeypass("keypass");
request.setDestalias(newAlias);
DefaultKeyTool keyTool = new DefaultKeyTool();
JavaToolResult result = keyTool.execute(request);
result.getExitCode();
result.getExecutionException();
但是,当我运行程序时,我得到空指针异常 –
java.lang.NullPointerException
at org.codehaus.mojo.keytool.DefaultKeyTool.createCommandLine(DefaultKeyTool.java:53)
at org.codehaus.mojo.keytool.DefaultKeyTool.createCommandLine(DefaultKeyTool.java:33)
由于文档很差,我无法找到如何正确使用API.
最佳答案 你不能这样使用代码.它必须在丛集容器环境中完成.
您可以看到代码中断(http://mojo.codehaus.org/keytool/keytool-api/xref/org/codehaus/mojo/keytool/DefaultKeyTool.html#53)构建器对象为空的位置,因为它应该通过plexus容器注入.
如果你想我们可以讨论如何改进代码,以便从outisde更容易调用(如果你可以使用项目用户或devel邮件列表).