我的计算机上有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。
有人知道该怎么做吗?
答案 0 :(得分:1)
我不知道你使用了什么类型的启动器,但这些应用程序在客户端JVM上运行的可能性很小,因为它们的启动程序通常默认选择服务器JVM。
但是,您被名称误导,因为这些JVM类型与应用程序是否可以打开侦听连接的问题无关。这两个JVM形状只会改变性能方面的行为。简单地说,服务器JVM针对长期运行的应用程序进行了优化,但无论如何这种差异即将在未来的JVM中消失,因此您再也不用担心“服务器”与“客户端”JVM了。
因此,如果您的应用程序无法打开端口进行收听,可能的原因是
SecurityManager
不允许(由于其政策)但这不是因为你的JVM是一个所谓的“客户端”JVM。
答案 1 :(得分:0)
根据您的硬件和操作系统做出的决定。有关概述,请查看此处: Server-Class Machine Detection