Параметры OpenJDK по умолчанию всегда используют серверную виртуальную машину

Я получил предупреждающее сообщение:

jvm использует клиент vm, для лучшей производительности запустите java с сервером vm, добавив -server в командную строку

На самом деле, когда я запускаю java -version, я получаю:

OpenJDK Runtime Environment (IcedTea7 2.3.2) (7u7-2.3.2a-0ubuntu0.12.04.1)
OpenJDK Client VM (build 23.2-b09, mixed mode, sharing)

Как можно изменить стандартные параметры OpenJDK, чтобы они всегда запускались под виртуальной машиной сервера?

2
задан 9 October 2012 в 00:56

2 ответа

Если у вас установлена ​​виртуальная машина клиента и сервера, вам просто нужно изменить порядок строк в jvm.cfg, чтобы сначала создать -server. Вы можете найти jvm.cfg следующим образом:

find $(dirname $(dirname $(readlink -f $(which java)))) -name jvm.cfg

На моей машине это /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/amd64/jvm.cfg.

0
ответ дан 9 October 2012 в 00:56

Java VM по умолчанию установлена ​​в вашем файле jvm.cfg. В Windows это в вашей папке Java в C:\Program Files, в Linux путь может отличаться.

В моей системе Ubuntu 12.04 amd64 с Oracle Java JDK7, установленной через Webupd8 ppa , файл находится в /usr/lib/jvm/java-7-oracle/jre/lib/amd64. Для OpenJDK 6 по умолчанию файл находится в /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/amd64/jvm.cfg. Обратите внимание, что вам нужен JDK, а не только установленный JRE.

Отредактируйте jvm.cfg, который соответствует вашей текущей версии Java по умолчанию (sudo nano /usr/lib/jvm/java-7-oracle/jre/lib/amd64/jvm.cfg). Переключите -server KNOWN на -server IGNORE и -client IGNORE на -client KNOWN.

Это сделает -client flag «известным» исполняемому файлу Java, и заставит его игнорировать -server flag, таким образом делая его по умолчанию.

Исходный файл (по умолчанию клиент vm):

# Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
# ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
#
# List of JVMs that can be used as an option to java, javac, etc.
# Order is important -- first in this list is the default JVM.
# NOTE that this both this file and its format are UNSUPPORTED and
# WILL GO AWAY in a future release.
#
# You may also select a JVM in an arbitrary location with the
# "-XXaltjvm=<jvm_dir>" option, but that too is unsupported
# and may not be available in a future release.
#
-server KNOWN
-client IGNORE
-hotspot ERROR
-classic WARN
-native ERROR
-green ERROR

Измененный файл (по умолчанию сервер vm):

# Copyright (c) 2003, Oracle and/or its affiliates. All rights reserved.
# ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
#
# List of JVMs that can be used as an option to java, javac, etc.
# Order is important -- first in this list is the default JVM.
# NOTE that this both this file and its format are UNSUPPORTED and
# WILL GO AWAY in a future release.
#
# You may also select a JVM in an arbitrary location with the
# "-XXaltjvm=<jvm_dir>" option, but that too is unsupported
# and may not be available in a future release.
#
#-server KNOWN
-server IGNORE
#-client IGNORE
-client KNOWN
-hotspot ERROR
-classic WARN
-native ERROR
-green ERROR

Теперь проверьте, нет ли изменений работал:

$ java -version
java version "1.7.0_07"
Java(TM) SE Runtime Environment (build 1.7.0_07-b10)
Java HotSpot(TM) 64-Bit Server VM (build 23.3-b01, mixed mode)

Источник

0
ответ дан 9 October 2012 в 00:56

Другие вопросы по тегам:

Похожие вопросы: