Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Playframework 如何将javaOptions传递给;“玩跑步”;通过Build.scala_Playframework_Sbt - Fatal编程技术网

Playframework 如何将javaOptions传递给;“玩跑步”;通过Build.scala

Playframework 如何将javaOptions传递给;“玩跑步”;通过Build.scala,playframework,sbt,Playframework,Sbt,当我使用run命令时,我想通过Build.scala将-Dconfig.file=conf/dev.conf参数传递给我的应用程序 我试图在我的Build.scala中放入类似的内容: val mySettings = Seq( (javaOptions in run) ++= Seq("-Dconfig.file=conf/dev.conf") ) val main = play.Project(appName, appVersion, appDependencies).settings

当我使用
run
命令时,我想通过Build.scala将
-Dconfig.file=conf/dev.conf
参数传递给我的应用程序

我试图在我的
Build.scala中放入类似的内容:

val mySettings = Seq(
  (javaOptions in run) ++= Seq("-Dconfig.file=conf/dev.conf")
)

val main = play.Project(appName, appVersion, appDependencies).settings(
  mySettings: _*
)

但事实并非如此——从我收集的信息来看,这是因为SBT在我使用run时没有派生出新的JVM。除了设置环境变量之外,还有什么解决方法?

问题似乎是Play与SBT JVM在同一JVM中运行,因此不使用SBT中设置的Java选项

您可以尝试以下方法:

  • 使用
    fork-in-run:=true
    以便使用您提供的Java选项生成新的JVM

  • 使用
    -Dconfig.file=conf/dev.conf

  • 在同一JVM中运行应用程序之前,请手动设置系统属性:
    system.setProperty(“config.file”、“conf/dev.conf”)


我不确定所有这些解决方案是否都有效,但值得一试。

正如@Sebastien Lorber所回答的那样

运行中的fork:=true

我们应该做到这一点。另请参见常见问题解答。

在游戏控制台中有一个
拨叉设置<代码>帮助分叉
说“如果为true,则在运行时分叉一个新的JVM。如果为false,则在与构建相同的JVM中运行。”。但我不知道在哪里或如何改变这种设置。