使用Java_选项启动Java

使用Java_选项启动Java,java,windows,powershell,environment-variables,Java,Windows,Powershell,Environment Variables,这应该是一个相当简单的问题,我不敢相信我在谷歌上找不到任何东西 我正在使用powershell,并尝试从命令行运行java应用程序: $memory = "-Xms128m -Xmx1028m -XX:MaxPermSize=512m" $ssl = "-Djavax.rmi.ssl.client.enabledProtocols=`"TLSv1`" -Djavax.rmi.ssl.client.enabledCipherSuites=`"_removed_`" -Djavax.net.ssl.

这应该是一个相当简单的问题,我不敢相信我在谷歌上找不到任何东西

我正在使用powershell,并尝试从命令行运行java应用程序:

$memory = "-Xms128m -Xmx1028m -XX:MaxPermSize=512m"
$ssl = "-Djavax.rmi.ssl.client.enabledProtocols=`"TLSv1`" -Djavax.rmi.ssl.client.enabledCipherSuites=`"_removed_`" -Djavax.net.ssl.trustStorePassword=`"_removed_`" -Djavax.net.ssl.trustStore=`"_removed_`" -Djavax.net.ssl.keyStorePassword=`"_removed_`" -Djavax.net.ssl.keyStore=`"_removed_`" -Djava.endorsed.dirs=`"$($ddmsLoc)tomcat6\endorsed`""

$classpath = getClasspath "manager" $null
$java_opts = "$($memory) $($ssl) -Djavax.net.debug=all"
$cmd = "$($java) $($java_opts) -cp `"$($classpath)`" dss.vector.solutions.manager.server.ServerStatus -g"

Invoke-Expression $cmd
但出于某种原因,它认为我的JAVA_OPTS参数是我正在运行的JAVA类的名称:

Caused by: java.lang.ClassNotFoundException: .rmi.ssl.client.enabledProtocols=TLSv1
我试过:

  • ssl选项,在值周围加/不加引号
  • 实际上设置JAVA_OPTS环境变量,直到我在其他地方读到JVM从未读过该变量
  • 用更多的引号将它们包装起来

  • 我在这里有点不知所措。

    Etan Reisner发表了一条评论,帮助我解决了这个问题:

    Windows(出于某种原因)正在将参数一分为二

    echo -Dmy.param=value
    
    返回:

    -Dmy
    .param=value
    
    如果参数用引号括起来,如:

    echo "-Dmy.param=value"
    

    然后它就可以正常工作。

    尝试一个简单的java选项,并将其分配给$ssl,看看它是否可以工作。问题也可能出在脚本的其他部分。