如何在Powershell脚本或cmd中的Java程序中设置密钥库路径?

时间:2019-07-05 09:23:29

标签: java powershell cmd keystore

我们使用CMD调用Powershell脚本。在powershell脚本中,将调用Java程序。这两个文件都在同一目录中。在该目录中,还有一个可供Java程序使用的密钥库文件(zzzz.keystore)。我知道可以通过-Djavax.net.ssl.trustStore =

完成

我使用了许多设置路径的方法,但是所有方法都返回错误:“找不到或加载主类.net.ssl.trustStore = zzzz.keystore”

这是在Windows系统上。我不确定是否必须在cmd中设置一些调用powershell脚本的功能才能使其正常工作。请指教。

我发现了以下问题:java SSL and cert keystore,但没有在Windows中设置路径的明确示例。我已经使用以下方法在powershell脚本中添加路径,但是没有一个起作用:

& java -Djavax.net.ssl.trustStore=zzzz.keystore com.router.router.router.Router

& java -Djavax.net.ssl.trustStore="zzzz.keystore" com.router.router.router.Router

& java -Djavax.net.ssl.trustStore="C:/path/to/file/zzzz.keystore" com.router.router.router.Router

& java -Djavax.net.ssl.trustStore="C://path//to//file//zzzz.keystore" com.router.router.router.Router

& java -Djavax.net.ssl.trustStore="C:\\path\\to\\file\\zzzz.keystore" com.router.router.router.Router

& java -Djavax.net.ssl.trustStore=C:/path/to/file/zzzz.keystore com.router.router.router.Router

& java -Djavax.net.ssl.trustStore=C://path//to//file//zzzz.keystore com.router.router.router.Router

Cmd文件包含:

SET CLASSPATH=.\yyyyy.jar
powershell .\startscript.ps1

startscript.ps1

& java followed by script as shown above followed by parameters for Java object

我希望Java能够正常运行。我一次又一次收到java.exe:错误:找不到或加载主类.net.ssl.trustStore = zzzz.ke ystore

我知道keystore很好,因为它可以在cmd脚本中设置并调用所有其他脚本的脚本中使用,而无需使用powershell。

2 个答案:

答案 0 :(得分:1)

将Powershell中的代码更改为:

& java '-Djavax.net.ssl.trustStore="zzzz.keystore"' com.router.router.router.Router

现在Java程序可以正常运行了

答案 1 :(得分:0)

这是因为PowerShell在Java -开关前面看到了D,并认为“哦,参数名称”。

防止PowerShell通过--%解析为命令参数:

& java --% -Djavax.net.ssl.trustStore="C:\\path\\to\\file\\zzzz.keystore" com.router.router.router.Router

或通过引用或分组参数字符串来实现:

& java '-Djavax.net.ssl.trustStore="C:\\path\\to\\file\\zzzz.keystore"' com.router.router.router.Router
# or 
& java @('-Djavax.net.ssl.trustStore="C:\\path\\to\\file\\zzzz.keystore"', 'com.router.router.router.Router')