通过sbt使用Java选项运行项目

Ole*_*leg 8 scala sbt

我正在用命令运行胖子罐java -Djava.security.krb5.conf=/krb5.conf -jar my.jar

如何通过sbt使用此选项运行我的应用程序?
$ sbt -Djava.security.krb5.conf="module\\src\\main\\resources\\krb5.conf" run不起作用。错误:

ctl-scala> sbt -Djava.security.krb5.conf =“ ctl-core \ src \ main \ resources \ krb5.conf” ctl-ui-backend / run
警告:无效的系统属性'java.security.krb5.conf'
[info]从C:\ Users \ User \ .sbt \ 0.13 \ plugins加载全局插件
[info]从C:\ Users \ User \ IdeaProjects \ ctl-scala \ project加载项目定义
[info]将当前项目设置为ctl(在构建文件中:/ C:/ Users / User / IdeaProjects / ctl-scala /)
[错误]没有有效的解析器。
[错误] ctl-core \\ src \\ main \\ resources \\ krb5.conf
[错误] ^

Lev*_*sey 7

你能试一下吗 sbt -J-Djava.security.krb5.conf="module/src/main/resources/krb5.conf" run

-J会导致 sbt 启动器将这些作为选项传递给 JVM。

  • 如果“fork”设置为“true”,则不起作用。 (2认同)

小智 7

作为 sbt 手册,它会将 JAVA_OPTS 环境变量传递给 java,如果无法设置该变量,.jvmopts 将保存 java 命令行参数。所以如果你在 bash 中:

export JAVA_OPTS="-Djava.security.krb5.conf=/krb5.conf"
Run Code Online (Sandbox Code Playgroud)

before sbt 命令将参数传递给 java 运行时。


Adp*_*pi2 6

您可以在运行应用程序时强制 sbt fork 一个新的 JVM,并使用文件中的以下设置来设置所需的 java 选项build.sbt

fork := true,
javaOptions ++= Seq(
  "-Djava.security.krb5.conf=/krb5.conf"
)
Run Code Online (Sandbox Code Playgroud)

只需运行该run任务,它就会在自己的 JVM 中使用所需的 java 选项启动应用程序。