我们使用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。
答案 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')