vertx run -cp选项不起作用

时间:2014-09-18 05:23:07

标签: vert.x

当我使用vertx run时,我有一个问题。

我的命令是vertx run groovy:myModule -conf conf.json。但依赖关系都在lib。我发现doc有关将类路径添加到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不起作用?

1 个答案:

答案 0 :(得分:1)

如果您查看要添加到类路径的vertx脚本,请按照上面的描述设置classpath属性" CLASSPATH =" lib / *"。

然后在脚本的以下行中使用它:

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

然后脚本的最后一行使用此变量在启动vertx时设置java -classpath属性:

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 "$@"

这是设置变量工作的原因,并且使用-cp不起作用。您可以更改脚本以接受-cp输入,但这需要您自定义脚本。