如何使用org.codehaus.mojo中的keytool API?

时间:2015-02-03 13:16:35

标签: java keytool mojo

我正在尝试使用codehaus中的mojo keytool API - http://mojo.codehaus.org/keytool/keytool-api/index.html

我已经设置了一个示例项目,只是尝试通过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​​。

1 个答案:

答案 0 :(得分:2)

您不能以这种方式使用代码。它必须在丛集容器环境中完成。

您可以看到构建器对象为空的代码在哪里(http://mojo.codehaus.org/keytool/keytool-api/xref/org/codehaus/mojo/keytool/DefaultKeyTool.html#53),因为它应该通过plexus容器注入。

如果您希望我们可以讨论如何从outisde更轻松地调用代码(请使用项目用户或devel邮件列表)。