将默认Java VM更改为客户端

我在Fedora 17上安装了Oracle的Java,我注意到在使用java -version命令时会返回它

 java version "1.7.0_05" Java(TM) SE Runtime Environment (build 1.7.0_05-b05) Java HotSpot(TM) 64-Bit Server VM (build 23.1-b03, mixed mode) 

Java似乎默认运行-server选项。 帮助文本出现了

 -server to select the "server" VM The default VM is server, because you are running on a server-class machine. 

有没有办法将默认值更改为客户端?

默认设置在文件jvm.cfg中定义。 像这样的内容

 -client KNOWN -server KNOWN 

将客户端定义为默认值。

 -server KNOWN -client KNOWN 

将服务器设置为默认值。

资料来源: http://www.rgagnon.com/javadetails/java-0566.html

jvm.cfg的位置

未知的Mac OS X版本:

/Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home/jre/lib/jvm.cfg

没有安装JDK的Mac OS X版本10.9:

/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/lib/jvm.cfg

已安装JDK版本1.8.0_u92的Mac OS X版本10.9:

/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home/jre/lib/jvm.cfg


您可以使用命令$ locate /jvm.cfg从命令行(Terminal.app) $ locate /jvm.cfg 您可能需要首先使用以下命令更新您的locate数据库: $ sudo /usr/libexec/locate.updatedb

来自文档 :

注意:对于J2SE 5.0,服务器级计算机的定义是具有至少2个CPU和至少2GB物理内存的计算机。

所以似乎没有办法改变服务器级机器检测技术,我猜你必须坚持传递-client VM参数,如果你需要在你的机器上。

另外值得注意的是,此页面适用于Java 5,因此Java 6及更高版本可能会有所不同。

从Java 5开始,您可以将其指定为JVM的选项:

  • -client选项将使VM以客户端模式启动。 在此模式下,启动速度会快得多。
  • -server选项将使VM以服务器模式启动。 启动速度会慢一些,但从长远来看,它的执行速度会更快。

有关2种模式的差异的更多详细信息,请参阅此问题 。

如果未指定这些选项,VM将检查您是否至少有2个CPU和至少2 GB RAM。 如果这样做,那么它将以服务器模式启动。

您可以看到有关如何做出这些决策的表格:

  • 这里是Java 5
  • 这里是Java 6和
  • 这里是Java 7

仅供参考:他们都是一样的。