【问题标题】:vertx run -cp option doesn't workvertx run -cp 选项不起作用
【发布时间】:2014-09-28 20:38:41
【问题描述】:

我在使用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 不起作用?

【问题讨论】:

  • 我下面的回答有道理还是我应该详细说明?
  • @Kevin Bayes 谢谢。这几天我不在线。所以我回复有点晚了。

标签: vert.x


【解决方案1】:

如果您查看了要添加到类路径的 vertx 脚本,您可以按照上面的描述设置类路径属性“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 输入,但这需要您自定义脚本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-02
    • 2015-10-27
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 2018-05-05
    相关资源
    最近更新 更多