Недокументированные параметры командной строки Java?

1

На сервере, где я работаю, есть экземпляр JBoss, который имеет следующую командную строку:

/usr/java/jdk1.6.0_31/bin/java -Dcom.sun.management.jmxremote -Dprogram.name=run.sh -server -Xms464m -Xmx464m -XX:MaxPermSize=128m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Dsun.net.inetaddr.ttl=0 -Dcom.sun.management.jmxremote -Djavax.management.builder.initial=org.jboss.system.server.jmx.MBeanServerBuilderImpl -Djboss.platform.mbeanserver -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=20071 -Djava.endorsed.dirs=/opt/jboss/lib/endorsed -classpath/opt/jboss/bin/run.jar: /usr/java/jdk1.6.0_31/lib/tools.jar org.jboss.Main -P/opt/jboss/server/default/site-Deploy/example.com/boot-1.properties -c default

У меня есть несколько вопросов:

1. Я понимаю, что опция -D задает именованное свойство, например -Dsun.rmi.dgc.server.gcInterval=3600000 устанавливает свойство sun.rmi.dgc.server.gcInterval в значение 3600000. Что относительно -D, которые не имеют знака равенства, например -Dcom.sun.management.jmxremote? Какова ценность com.sun.management.jmxremote?

2. Я не могу найти ЛЮБОЙ документации, объясняющей, что -P или -c. Ни java -version ни man java упоминают их. Я предполагаю, что -P означает "загрузить свойства из указанного файла". Я понятия не имею, что делает -c.

3. Токен org.jboss.Main, похоже, не является частью предыдущей -classpath. Это имя класса, которое Java говорит ему для вызова, например, как java Foo вызывает класс Foo?

  • 0
    -P и -c выглядят как аргументы программы, а не параметры. Да, org.jboss.Main - это класс с методом main.
  • 0
    Обычно (для вопроса -D ) я бы сказал, посмотрите документы, но документы, кажется, не говорят, что это значит без = !
Теги:
jboss

2 ответа

1
Лучший ответ
/usr/java/jdk1.6.0_31/bin/java -Dcom.sun.management.jmxremote -Dprogram.name=run.sh -server -Xms464m -Xmx464m -XX:MaxPermSize=128m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Dsun.net.inetaddr.ttl=0 -Dcom.sun.management.jmxremote -Djavax.management.builder.initial=org.jboss.system.server.jmx.MBeanServerBuilderImpl -Djboss.platform.mbeanserver -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=20071 -Djava.endorsed.dirs=/opt/jboss/lib/endorsed -classpath /opt/jboss/bin/run.jar:/usr/java/jdk1.6.0_31/lib/tools.jar org.jboss.Main -P /opt/jboss/server/default/site-deploy/example.com/boot-1.properties -c default

1 Системное свойство без значения означает, что системное свойство присутствует, а значение - пустая строка ""

2 это аргумент командной строки для jboss Main class

3 этот класс исходит из одного из этих run.jar, откройте run.jar и подтвердите

  • 0
    Так -c default означает, что аргумент default передается в основной класс?
  • 1
    да, в основной класс передано 4 аргумента ["-P", "/opt/jboss/server/default/site-deploy/example.com/boot-1.properties", "-c" ,"default"] this это представление массива
Показать ещё 10 комментариев
0

Следующая ссылка содержит все параметры сценария jboss run.sh:

Глава 5. Запуск и остановка JBoss

usage: run.sh [options]
  -h, --help                  Show this help message
  -V, --version               Show version information
  --                          Stop processing options
  -D<name>[=<value>]          Set a system property
  -d, --bootdir=<dir>         Set the boot patch directory; Must be absolute or url
  -p, --patchdir=<dir>        Set the patch directory; Must be absolute or url
  -n, --netboot=<url>         Boot from net with the given url as base
  -c, --configuration=<name>  Set the server configuration name
  -B, --bootlib=<filename>    Add an extra library to the front bootclasspath
  -L, --library=<filename>    Add an extra library to the loaders classpath
  -C, --classpath=<url>       Add an extra url to the loaders classpath
  -P, --properties=<url>      Load system properties from the given url
  -b, --host=<host or ip>     Bind address for all JBoss services
  -g, --partition=<name>      HA Partition name (default=DefaultDomain)
  -u, --udp=<ip>              UDP multicast address
  -l, --log=<log4j|jdk>       Specify the logger plugin type

Ещё вопросы

Сообщество Overcoder
Наверх
Меню