调用Java/Scala方法的最早方法是什么?
我使用一些脏代码从这个问题的第二个答案在 Scala 中设置环境变量
我在 IDE(IDEA Intellij)中对此进行了测试,并OMP_NUM_THREADS在课程开始时进行了设置。
import org.scalatest.{FlatSpec, Matchers}
class MyTest extends FlatSpec with Matchers {
val m = Map("OMP_NUM_THREADS" -> "1")
EnvHacker.setEnv(m)
设置后,我可以从 读取System.env,它有效。但是当我的程序运行时,它不使用这个。我尝试将其设置在静态块中,但仍然无法正常工作。
但是如果我在 IDE 运行配置中设置它(在 JVM 运行之前),它会按我的预期工作和运行。所以似乎它在我修改变量之前被读取。
或者换句话说,我有一段代码,在 Java/Scala 中最早的调用方式是什么。例如,在main 方法的第一行之前调用静态块。
更新了一些细节:
我正在使用 tensorflow-mkl Java API,它会OMP_NUM_THREADS在某个时间读取系统环境变量,根据我的测试结果,此操作是在系统静态块之前。但是,我想在代码中进行控制,因为我不知道没有代码逻辑的预期配置。