我正在使用命令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
[错误] ^
答案 0 :(得分:1)
按照sbt手册,它将JAVA_OPTS环境变量传递给Java,如果您不能设置该变量,则jvmopts将保存Java命令行参数。因此,如果您在bash中:
export JAVA_OPTS="-Djava.security.krb5.conf=/krb5.conf"
在sbt命令之前,会将参数传递给Java运行时。
答案 1 :(得分:0)
看一下我通过sbt传递命令行参数的项目之一:
https://github.com/joesan/plant-simulator/blob/master/README.md
我想你的双引号搞砸了!没有它们就试试吧!
答案 2 :(得分:0)
你能试试sbt -J-Djava.security.krb5.conf="module/src/main/resources/krb5.conf" run
-J
会使sbt启动程序将这些选项作为选项传递给JVM。
答案 3 :(得分:0)
您可以在运行应用程序时强制sbt派生新的JVM,并在WorldAnchorManager
文件中使用以下设置来设置所需的Java选项:
using Microsoft.MixedReality.Toolkit.Experimental.Utilities;
using UnityEngine;
public class SetWorldAnkeredObject : MonoBehaviour
{
public GameObject anchoredObject;
public WorldAnchorManager store;
private string anchorId = "AnchoredCube";
private bool savedRoot;
void Start()
{
store.AttachAnchor(anchoredObject, anchorId);
}
void Update()
{
if (Input.GetKeyDown(KeyCode.L))
{
store.AttachAnchor(anchoredObject, anchorId);
}
if (Input.GetKeyDown(KeyCode.Return))
{
if (anchoredObject != null)
store.RemoveAnchor(anchorId);
anchoredObject.transform.position = this.transform.position;
store.AttachAnchor(anchoredObject, anchorId);
}
}
}
只需运行for i in range (0, len(list)):
if list[i] == someValue and all(x != someValue for x in list[i+1:i+10]):
doSomething()
任务,它将使用所需的Java选项在自己的JVM中启动应用程序。
答案 4 :(得分:0)
另一个选择是使用.sbtopts
文件。它应位于sbt.build
旁边的根文件夹中。它的内容应该是java选项,其前缀为-J
(如先前答案中所述),以告诉sbt将这些选项传递给JVM。
例如,其内容可以是:
-J-Djava.security.krb5.conf=/krb5.conf