即使指定了第一个线程上的环境变量JAVA\u start\u,也会返回null

即使指定了第一个线程上的环境变量JAVA\u start\u,也会返回null,java,variables,process,jvm,environment,Java,Variables,Process,Jvm,Environment,我试图检测程序是否在第一个线程上运行。(由于lwjgl)。我跟着 由于某些原因,即使我使用-xstartonfirsthread选项运行该代码,它也会返回始终为null String pid = ManagementFactory.getRuntimeMXBean().getName().split("@")[0]; // get environment variable on whether XstartOnFirstThread is enabled String e

我试图检测程序是否在第一个线程上运行。(由于lwjgl)。我跟着

由于某些原因,即使我使用-xstartonfirsthread选项运行该代码,它也会返回始终为null

    String pid = ManagementFactory.getRuntimeMXBean().getName().split("@")[0];
    // get environment variable on whether XstartOnFirstThread is enabled
    String env = System.getenv("JAVA_STARTED_ON_FIRST_THREAD_" + pid);

    System.out.println("env: "+env);

ManagementFactory.getRuntimeMXBean().getName()
的结果实际上是未指定的。您是否确认它仍然具有预期的格式,即
@
之前的十进制pid?从Java9开始,您可以使用更可靠的
ProcessHandle.current().pid()
。另一个需要考虑的问题是输出<代码>系统.GETEnVE()/Case>的全部结果,以查看实际可用的内容。LWJGL 3也对此进行检查(这只与Mac OS有关)。请参阅:或者
ManagementFactory.getRuntimeMXBean().getName()
的结果实际上是未指定的。您是否确认它仍然具有预期的格式,即
@
之前的十进制pid?从Java9开始,您可以使用更可靠的
ProcessHandle.current().pid()
。另一个需要考虑的问题是输出<代码>系统.GETEnVE()/Case>的全部结果,以查看实际可用的内容。LWJGL 3也对此进行检查(这只与Mac OS有关)。见:或