2012-03-12 101 views
1

有没有什么办法可以检测到一个java应用程序运行的主机是否是虚拟机?只是想警告用户,如果使用VM,他们可能(很少)会遇到问题,并且我们建议他们尽可能使用物理机器。我可以检测主机是否是虚拟机?

+1

A *在VM上有问题的Java *应用程序?说实话,我发现很难相信,除非你使用本地代码进行硬件访问,例如一个3D引擎。你介意提供一些关于你的主机和客户操作系统,虚拟机软件以及你所看到的问题的信息吗? – thkala 2012-03-12 11:29:24

回答

2

正如链接的问题所解释的,是的,有办法。

但是,在Java应用程序中这样做会更棘手。您将需要使用System.exec(...)来运行本机应用程序,或者使用JNI调用本机库来完成这项工作。

但坦率地说:

  • 为什么会在虚拟机上的纯Java应用程序的经验问题?难道你不能找到问题并修复它或提供解决方法吗?

  • 如果您不能,那么您为什么不直接在发行说明中描述问题?

+0

回答我的经验中的原因问题。我们的客户不会告诉我们他们正在VM中运行我们的产品,直到他们开始出现性能问题。客户不会在VM中运行数周。如果我们能够在早期发现它,提供配置建议或将它们转移到专用的硬件中,它将为我们节省很多痛苦。 – KaizenSoze 2013-09-25 12:58:12