scala – 运行Akka Microkernel时获取命令行参数?
发布时间:2020-12-16 18:35:17 所属栏目:安全 来源:网络整理
导读:我有以下 Akka microkernel: class ServiceKernel extends Bootable { val system = ActorSystem("service-kernel") def startup = { system.actorOf(Props(new Boot(false))) ! Start } def shutdown = { system.shutdown() }} 因为内核扩展了Bootable而不
我有以下
Akka microkernel:
class ServiceKernel extends Bootable { val system = ActorSystem("service-kernel") def startup = { system.actorOf(Props(new Boot(false))) ! Start } def shutdown = { system.shutdown() } } 因为内核扩展了Bootable而不是App,我如何访问启动内核时使用的命令行参数?例如,如果我使用start namespace.ServiceKernel -d rundevmode或类似命令运行内核.谢谢! 附加信息 我认为值得在微内核中添加有关启动脚本的信息.在/ bin / start中,您会注意到以下内容: #!/bin/sh AKKA_HOME="$(cd "$(cd "$(dirname "$0")"; pwd -P)"/..; pwd)" AKKA_CLASSPATH="$AKKA_HOME/config:$AKKA_HOME/lib/*" JAVA_OPTS="-Xms256M -Xmx512M -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled -XX:ParallelGCThreads=2" java $JAVA_OPTS -cp "$AKKA_CLASSPATH" -Dakka.home="$AKKA_HOME" akka.kernel.Main "$@" 虽然om-nom-nom最初建议使用-D选项,但看起来它正在使用中,并且主启动参数被传递给akka.kernel.Main类(在本例中是上面的ServiceKernel类). 解决方法
这是最小的例子:
object Foo extends App { val debugModeOn = System.getProperty("debugmode") != null val msg = if (debugModeOn) "in debug mode" else "not in debug mode" println(msg) } ? scala Foo -Ddebugmode in debug mode ? scala Foo not in debug mode 您可以进行额外检查以克服此问题: ? scala Foo -Ddebugmode=false in debug mode 附:你可能也想使用Properties helper,它包含一些方法,如propOrNone,propOrElse等 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |