首页 > 解决方案 > 如何在我的 java 程序中的 powershell 脚本或 cmd 中设置密钥库路径?

问题描述

我们使用 CMD 调用 Powershell 脚本。在 powershell 脚本中,调用了一个 Java 程序。两个文件都在同一个目录中。在该目录中还有一个可用的密钥库文件 (zzzz.keystore),Java 程序需要使用该文件。我知道这可以通过 -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

启动脚本.ps1

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

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

我知道密钥库很好,因为它用于在 cmd 脚本中设置和调用所有内容的其他脚本中,不涉及 powershell。

标签: javapowershellcmdkeystore

解决方案


这是因为 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')

推荐阅读