通过sbt传递JVM参数
我正在尝试将第三方jar添加到我的java库路径中。如果我使用通过sbt传递JVM参数,sbt,Sbt,我正在尝试将第三方jar添加到我的java库路径中。如果我使用-Djava.library.path=a-third-party-lib.jar调用sbt,那么它适用于sbt内部的run main MyClass的第一次调用,但此后第三方代码抱怨jar不在java库路径中。我还尝试将javaOptions+=“-Djava.library.path=a-3rd-party-lib.jar”添加到build.sbt文件中,但这并不奏效(即使是第一次运行)。将此命令限定为(Test,run)+=“-
-Djava.library.path=a-third-party-lib.jar
调用sbt,那么它适用于sbt内部的run main MyClass
的第一次调用,但此后第三方代码抱怨jar不在java库路径中。我还尝试将javaOptions+=“-Djava.library.path=a-3rd-party-lib.jar”
添加到build.sbt文件中,但这并不奏效(即使是第一次运行)。将此命令限定为(Test,run)+=“-Djava.library.path=a-3rd-party-lib.jar”(如文档中所示)中的javaOptions也不起作用
我做错了什么,还是这是一个奇怪的错误
仅供参考,我正在使用sbt 0.13.0javaOptions
仅在您forkrun
且默认情况下sbt不fork时生效。有关详细信息,请参阅文档,但为run
和runMain
启用了分叉功能,其中包括:
fork in run := true
您的回答解决了我通过microsoft jdbc驱动程序6.0连接到integratedSecurity=true的SQL Server时遇到的一个问题。在使用fork选项之前,当我第一次运行应用程序时,它是正常的,第二次运行时,我会得到:起因:java.io.FileNotFoundException:C:\Users\costa\AppData\Local\Temp\sbt\u fbfea069\sqljdbc\u auth.dll(该进程无法访问该文件,因为它正被另一个进程使用)。使用fork选项后,每次都可以正常工作。