默认情况下启动java server vm

时间:2015-02-25 13:29:00

标签: java jvm

我的计算机上有Client VM和Server VM。

$ java -client -version
Java HotSpot(TM)客户端VM

$ java -server -version
Java HotSpot(TM)服务器VM

默认使用客户端VM:
$ java -version
Java HotSpot(TM)客户端VM

我正在尝试启动一些Java应用程序(如glassfish,teamcity,upsource等),因为它们无法打开侦听连接,因为它们是由Client VM启动的,所以我认为我需要默认设置java Server VM。

有人知道该怎么做吗?

2 个答案:

答案 0 :(得分:1)

我不知道你使用了什么类型的启动器,但这些应用程序在客户端JVM上运行的可能性很小,因为它们的启动程序通常默认选择服务器JVM。

但是,您被名称误导,因为这些JVM类型与应用程序是否可以打开侦听连接的问题无关。这两个JVM形状只会改变性能方面的行为。简单地说,服务器JVM针对长期运行的应用程序进行了优化,但无论如何这种差异即将在未来的JVM中消失,因此您再也不用担心“服务器”与“客户端”JVM了。

因此,如果您的应用程序无法打开端口进行收听,可能的原因是

  • 操作系统不允许它(例如某些端口可能需要管理员权限)
  • JRE的SecurityManager不允许(由于其政策)
  • 该端口已在使用中

但这不是因为你的JVM是一个所谓的“客户端”JVM。

答案 1 :(得分:0)

根据您的硬件和操作系统做出的决定。有关概述,请查看此处: Server-Class Machine Detection