将默认的Java虚拟机更改为客户端

3

我在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.

有没有办法将默认设置为客户端?

1
此外,问题是为什么要使用客户端 VM? - Thorbjørn Ravn Andersen
1
@ThorbjørnRavnAndersen,“更改默认设置”意味着更改如果您未指定一个,则会获得什么。 - Fredrik
@Fredrik 是的。问题是为什么这是必要的或者可取的。 - Thorbjørn Ravn Andersen
3个回答

9
默认设置在文件jvm.cfg中定义。类似以下内容:
-client KNOWN
-server KNOWN

将客户端定义为默认值。

-server KNOWN
-client KNOWN

将服务器设置为默认值。

来源: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)查找您的jvm.cfg。您可能需要先使用命令$ sudo /usr/libexec/locate.updatedb更新您的locate数据库。


1

来自文档

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

因此,似乎没有办法改变服务器级别机器检测技术,如果您需要在您的机器上使用它,我猜想您将不得不坚持传递-client VM参数。

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


1

从Java 5开始,您可以将此作为JVM选项进行指定:

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

有关这两种模式之间差异的更多详细信息,请参见this question

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

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

顺便提一下:它们都是相同的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接