Мне нужно извлечь имя программы Java / имя пакета из командной строки процесса.Пример командной строки процесса:
/ usr / lib / jvm / jdk1.8 / bin / java -Dzookeeper.datadir.autocreate = false -Dzookeeper.log.dir = / var / log / zookeeper -Dzookeeper.root.logger = INFO, ROLLINGFILE -cp /usr/lib/zookeeper/bin/../build/classes:/usr/lib/zookeeper/bin/../build/lib/.jar:/USR / Lib / Zookeeper / бен /../ Библиотека / SLF4J-log4j12.jar: / USR / Библиотека / Zookeeper / бен /../ Библиотека / SLF4J-log4j12-1.7.5.jar: / USR / Библиотека / Zookeeper /бин /../ Библиотека / SLF4J-апи-1.7.5.jar: / USR / Библиотека / Zookeeper / бен /../ Библиотека / Нетти-3.10.5.Final.jar: / USR / Lib / Zookeeper / bin /../lib/log4j-1.2.16.jar:/usr/lib/zookeeper/bin/../lib/jline-2.11.jar:/usr/lib/zookeeper/bin/../zookeeper-3.4.8.jar: / USR / Lib / Zookeeper / бен /../-3.4.5 Zookeeper-cdh5.15.0.jar: / USR / Библиотека / Zookeeper / бен /../ SRC / Java / Библиотека / .jar: / etc / zookeeper / conf :: / etc / zookeeper / conf: / usr / lib / zookeeper / : / usr / lib / zookeeper / lib / -Dzookeeper.log.threshold = INFO -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only = false org.apache.zookeeper.server.quorum.QuorumPeerMain / etc / zookeeper / conf-d / zoo.cfg
Мне нужно захватить org.apache.zookeeper.server.quorum.QuorumPeerMain /etc/zookeeper/conf-d/zoo.cfg
Яиспользование регулярного выражения (?: (?:. bin / | ^) java \ s. ? - cp) (?: \ s. jar. ?) + (\ s (?: (?! -).) +), которая захватывает org.apache.zookeeper.server.quorum.QuorumPeerMain / etc / zookeeper / conf.
Нужна помощь в исправлении регулярного выражения или лучший способ получения имени программы.