2014-09-18 3 views
2

У меня вопрос, когда я использую vertx run.vertx run -cp опция не работает

Моя команда vertx run groovy:myModule -conf conf.json. Но все зависимости находятся в lib. Я нахожу doc о добавлении classpath в vertx, просто пройдите -cp до vertx run.

Таким образом, я использую vertx run groovy:myModule -conf conf.json -cp "lib/*", но это не работает, также выбрасывает unable to resolve class исключение.

Затем я прочитал скрипт vertx, я нахожу, что vertx передаст переменную окружения CLASSPATH. Поэтому я стараюсь так:

CLASSPATH="lib/*" vertx run groovy:myModule -conf conf.json

Это работает!

Почему -cp не работает?

+0

Получил ли мой ответ ниже смысл или я должен уточнить больше? –

+0

@ Кевин Байес Спасибо. Я не в сети в эти дни. Поэтому я немного опоздал. –

ответ

1

Если вы посмотрите на сценарий VertX, чтобы добавить к классам вы установите свойство пути к классам, как вы описали выше «CLASSPATH =» Библиотека/*».

Это то привыкает в следующей строке в сценарий:

CLASSPATH=${CLASSPATH}:${VERTX_HOME}/conf:${VERTX_HOME}/lib/* 

Тогда последняя строка сценария затем использует эту переменную для установки Java -classpath собственности при запуске VertX:

exec "$JAVACMD" \ 
"${JVM_OPTS[@]}" \ 
-Djava.util.logging.config.file=${VERTX_JUL_CONFIG:-${VERTX_HOME}/conf/logging.properties} \ 
-Dvertx.home=$VERTX_HOME\ 
-Dvertx.clusterManagerFactory=org.vertx.java.spi.cluster.impl.hazelcast.HazelcastClusterManagerFactory\ 
-classpath "$CLASSPATH" \ 
org.vertx.java.platform.impl.cli.Starter "[email protected]" 

Это является причиной s работа с переменными работает и использование -cp не работает. Вы можете изменить сценарий, чтобы принять вход -cp, но для этого потребуется настроить скрипт.

Смежные вопросы