type=page
status=published
title=delete-jvm-options
next=delete-lifecycle-module.html
prev=delete-jndi-resource.html
~~~~~~
delete-jvm-options
==================

[[delete-jvm-options-1]][[GSRFM00094]][[delete-jvm-options]]

delete-jvm-options
------------------

removes one or more options for the Java application launcher

[[sthref825]]

Synopsis

[source,oac_no_warn]
----
asadmin [asadmin-options] delete-jvm-options [--help] 
[--target target] [--profiler={true|false}] 
(jvm-option-name[=jvm-option-value]) [:jvm-option-name[=jvm-option-name]]*
----

[[sthref826]]

Description

The `delete-jvm-options` subcommand removes one or more command-line
options for the Java application launcher. These options are removed
from the Java configuration `java—config` element or the profiler
`profiler` element of the `domain.xml` file. To see the Java application
launcher options that can be deleted, use the
link:list-jvm-options.html#list-jvm-options-1[`list-jvm-options`(1)]
subcommand.

The deletion of some options requires a server restart for changes to
become effective. Other options are set immediately in the environment
of the domain administration server (DAS) and do not require a restart.

Whether a restart is required depends on the type of option.

* Restart is not required for Java system properties whose names do not
start with `-Djava.` or `-Djavax.` (including the trailing period). For
example, restart is not required for the following Java system property: +
`-Denvironment=Production`
* Restart is required for the following options:

** Java system properties whose names start with `-Djava.` or `-Djavax.`
(including the trailing period). For example: +
`-Djava.security.manager`

** Startup parameters for the Java application launcher. For example: +
`-client` +
`-Xmx1024m` +
`-d64`

To restart the DAS, use the
link:restart-domain.html#restart-domain-1[`restart-domain`(1)] command.

This subcommand is supported in remote mode only.

[[sthref827]]

Options

asadmin-options::
  Options for the `asadmin` utility. For information about these
  options, see the link:asadmin.html#asadmin-1m[`asadmin`(1M)] help page.
`--help`::
`-?`::
  Displays the help text for the subcommand.
`--target`::
  Specifies the target from which you are removing Java application
  launcher options. +
  Valid values are as follows: +
  `server`;;
    Specifies the DAS (default).
  instance-name;;
    Specifies a \{product---name} instance.
  cluster-name;;
    Specifies a cluster.
  configuration-name;;
    Specifies a named configuration.
`--profiler`::
  Indicates whether the Java application launcher options are for the
  profiler. The option must have been set for a profiler for this option
  to be true.

[[sthref828]]

Operands

jvm-option-name::
  One or more options delimited by a colon (:). The format of the
  operand depends on the following: +
  * If the option has a name and a value, the format is
  option-name=value.
  * If the option has only a name, the format is option-name. For
  example, `-Xmx2048m`. +

[width="100%",cols="100%",]
|=======================================================================
a|
Note:

If an option name or option value contains a colon, the backslash
(`\`) must be used to escape the colon in the name or value. Other
characters might also require an escape character. For more
information about escape characters in subcommand options, see the
link:asadmin.html#asadmin-1m[`asadmin`(1M)] man page.

|=======================================================================


[[sthref829]]

Examples

[[GSRFM562]][[sthref830]]

Example 1   Deleting Java Application Launcher Options

This example removes multiple Java application launcher options.

[source,oac_no_warn]
----
asadmin> delete-jvm-options -Doption1=value1
"-Doption1=value1:-Doption2=value2"
Command delete-jvm-options executed successfully
----

[[GSRFM563]][[sthref831]]

Example 2   Deleting a Java Application Launcher Option From the
Profiler

This example removes a Java application launcher startup parameter for
the profiler.

[source,oac_no_warn]
----
asadmin> delete-jvm-options --profiler=true -XX:MaxPermSize=192m
Command delete-jvm-options executed successfully.
----

[[sthref832]]

Exit Status

0::
  subcommand executed successfully
1::
  error in executing the subcommand

[[sthref833]]

See Also

link:asadmin.html#asadmin-1m[`asadmin`(1M)]

link:create-jvm-options.html#create-jvm-options-1[`create-jvm-options`(1)],
link:list-jvm-options.html#list-jvm-options-1[`list-jvm-options`(1)],
link:restart-domain.html#restart-domain-1[`restart-domain`(1)]

For more information about the Java application launcher, see the
reference page for the operating system that you are using:

* Oracle Solaris and Linux: java - the Java application launcher
(`http://java.sun.com/javase/7/docs/technotes/tools/solaris/java.html`)
* Windows: java - the Java application launcher
(`http://java.sun.com/javase/7/docs/technotes/tools/windows/java.html`)


