【问题标题】:Launching Java With Java_OPTS使用 Java_OPTS 启动 Java
【发布时间】:2015-04-29 08:15:24
【问题描述】:

这应该是一个非常简单的问题,我不敢相信我无法通过谷歌搜索找到任何东西。

我正在使用 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

我试过了:

  1. 值周围有/无引号的 ssl 选项
  2. 实际上是设置 JAVA_OPTS 环境变量,直到我在其他地方读到 JVM 从未读取过该变量。
  3. 用更多引号括起来

我有点不知所措。

【问题讨论】:

标签: java windows powershell environment-variables


【解决方案1】:

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

Why does PowerShell split arguments containing hyphens and periods?

Windows (出于某种原因)将参数分成两半。

echo -Dmy.param=value

返回:

-Dmy
.param=value

如果参数用引号括起来,比如:

echo "-Dmy.param=value"

然后它就可以正常工作了。

【讨论】:

    猜你喜欢
    • 2011-01-01
    • 1970-01-01
    • 2011-07-11
    • 2013-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多