我正在尝试使用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。
答案 0 :(得分:2)
您不能以这种方式使用代码。它必须在丛集容器环境中完成。
您可以看到构建器对象为空的代码在哪里(http://mojo.codehaus.org/keytool/keytool-api/xref/org/codehaus/mojo/keytool/DefaultKeyTool.html#53),因为它应该通过plexus容器注入。
如果您希望我们可以讨论如何从outisde更轻松地调用代码(请使用项目用户或devel邮件列表)。