【问题标题】:JVM Tuning with JAVA_OPTIONS using a space?使用空格的 JAVA_OPTIONS 进行 JVM 调优?
【发布时间】:2010-10-05 19:24:35
【问题描述】:

好的,所以我在我的 JAVA_OPTIONS 中添加了一个参数,如 here 所记录的那样。但是,由于空间原因,它无法正常工作。这是我在 UNIX shell 脚本中使用的行(正如文档指定的那样):

JAVA_OPTIONS="-DFRAMEWORK_HOME=${app_home}/conf
          -Dcom.sun.xml.namespace.QName.useCompatibleSerialVersionUID=1.0
          \"-Dcom.sun.jndi.ldap.connect.pool.protocol=plain ssl\""

但我收到以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: 
"-Dcom/sun/jndi/ldap/connect/pool/protocol=plain

如果我使用protocol=plain OR protocol=ssl,我可以轻松做到这一点,但我真的需要它是“plain ssl”。

谁能帮忙?

【问题讨论】:

标签: java bash jvm


【解决方案1】:

双引号包含命令行选项,其中转义的双引号围绕具有空格的属性值似乎有效。

$ export JAVA_OPTIONS="-Dcom.sun.xml.namespace.QName.useCompatibleSerialVersionUID=1.0 \
-Dcom.sun.jndi.ldap.connect.pool.protocol=\"plain ssl\""

$ cat P.java
import java.util.ArrayList;
import java.util.Collections;
import java.util.Enumeration;
import java.util.List;

public class P {
    public static void main(String[] args) {
        Enumeration<?> e = System.getProperties().propertyNames();
        List<String> list = new ArrayList<String>();
        while (e.hasMoreElements()) {
            list.add((String) e.nextElement());
        }
        Collections.sort(list);
        for (String key : list) {
            System.out.println(key + "=" + System.getProperty(key));
        }
    }
}

$ javac -d ~/classes P.java

$ java -classpath ~/classes $JAVA_OPTIONS P | grep com.sun.jndi.ldap.connect.pool.protocol
com.sun.jndi.ldap.connect.pool.protocol=plain ssl

【讨论】:

  • 这似乎有效。假设您正确定义了 JAVA_OPTIONS 即:复制粘贴时要小心,因为折线可能很棘手。
【解决方案2】:

首先.....我有点想,无论谁决定该选项应该包含一个空格,都应该由 Java 警察进行军事法庭审判:-)。

话虽这么说......正如你所说,你的问题是空间。摆脱这种情况的方法是将其括在引号中。这个我没试过,但是你能不能试试改成:

JAVA_OPTIONS='-DFRAMEWORK_HOME=${app_home}/conf 
      -Dcom.sun.xml.namespace.QName.useCompatibleSerialVersionUID=1.0 
      -Dcom.sun.jndi.ldap.connect.pool.protocol=\"plain ssl\"'

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2013-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多