gpt4 book ai didi

java - VirtualMachine.list() 返回空列表

转载 作者:行者123 更新时间:2023-12-02 12:38:14 31 4
gpt4 key购买 nike

当我调用 VirtualMachine.list() 时,当我在 eclipse 和 jdk 上时它工作正常。但是一旦我更改为 jre,或者我在 eclipse 中尝试我的应用程序,此方法似乎每次都会返回一个空列表。我需要能够仅使用 JRE 在任何地方运行我的应用程序。

for(VirtualMachineDescriptor jvm :  VirtualMachine.list()){
System.out.println("jvm: " + jvm.displayName());
}

最佳答案

I need to be able to run my application anywhere wih just a JRE.

在这种情况下,您不应使用 com.sun.tools.attach.VirtualMachine 类,因为 VirtualMachine 只是 JDK 的一部分,而不是 JRE。

  • Oracle 许可协议(protocol)不允许distribute tools.jar与您的应用程序一起使用,而无需分发整个 JDK。
  • 即使您在应用程序中包含 tools.jar,您仍然无法在任何 JRE 上运行它,因为 tools.jar 具有特定于平台的部分,并且它依赖于 JRE 中也缺少的 native 库 (libattach.so)。

因此,有以下选择:

  1. 在运行应用程序之前需要安装 JDK。
  2. 将整个 JDK 与您的应用程序捆绑在一起。
  3. 从头开始实现缺失的功能。如果您正在寻找如何在不使用 tools.jar 的情况下列出正在运行的 JVM,this answer可能会给你一个想法。

关于java - VirtualMachine.list() 返回空列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45053288/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com