首页 > 解决方案 > 使用 JVM 参数在 jar 应用程序中运行 java

问题描述

我正在开发一个 Java 应用程序。当我尝试使用命令运行打包版本的应用程序时:

java -Djdk.tls.client.protocols=TLSv1.2 -jar .\target\filesharing-0.0.1-SNAPSHOT.jar

我收到以下错误:

java.lang.ClassNotFoundException: /tls/client/protocols=TLSv1/2

我正在使用 OpenJDK11,我认为语法是正确的。我错了什么?先感谢您。

标签: javawindowsjvm-arguments

解决方案


对于未来的搜索者,Powershell 需要包含要引用的句点(句号)字符的命令行参数。所以在这种情况下,命令应该是:

java "-Djdk.tls.client.protocols=TLSv1.2" -jar .\target\filesharing-0.0.1-SNAPSHOT.jar

任何-D类型的参数都应该用双引号括起来。

如果您没有使用 Powershell,而是使用cmdwrap 只是-D双引号中的值:

java -Djdk.tls.client.protocols="TLSv1.2" -jar .\target\filesharing-0.0.1-SNAPSHOT.jar

推荐阅读