The Java Options Framework contributes arbitrary Java options to the application at runtime.
For general information on configuring the buildpack, including how to specify configuration values through environment variables, refer to Configuration and Extension.
The framework can be configured by creating or modifying the config/java_opts.yml file in the buildpack fork.
| Name | Description |
|---|---|
from_environment |
Whether to append the value of the JAVA_OPTS environment variable to the collection of Java options |
java_opts |
The Java options to use when running the application. All values are used without modification when invoking the JVM. The options are specified as a single YAML scalar in plain style or enclosed in single or double quotes. |
Any JAVA_OPTS from either the config file or environment variables that configure memory options will cause deployment to fail as they're not allowed. Memory options are configured by the buildpack and may not be modified.
Any JAVA_OPTS from either the config file or environment variables will be specified in the start command after any Java Opts added by other frameworks.
Java options will have special characters escaped when used in the shell command that starts the Java application but the $ and \ characters will not be escaped. This is to allow Java options to include environment variables when the application starts.
cf set-env my-application JAVA_OPTS '-Dexample.port=$PORT'If an escaped $ or \ character is needed in the Java options they will have to be escaped manually. For example, to obtain this output in the start command.
-Dexample.other=something.\$dollar.\\slashFrom the command line use;
cf set-env my-application JAVA_OPTS '-Dexample.other=something.\\\\\$dollar.\\\\\\\slash'From the config/java_opts.yml file use;
from_environment: true
java_opts: '-Dexample.other=something.\\$dollar.\\\\slash'Finally, from the applications manifest use;
env:
JAVA_OPTS: '-Dexample.other=something.\\\\\$dollar.\\\\\\\slash'# JAVA_OPTS configuration
---
from_environment: false
java_opts: -Xloggc:$PWD/beacon_gc.log -verbose:gcThe following JAVA_OPTS are restricted and will cause the application to fail deployment.
-Xms-Xmx-Xss-XX:MaxMetaspaceSize-XX:MaxPermSize-XX:MetaspaceSize-XX:PermSize
Setting any of the allowed memory settings may require a change to the Memory Weightings. Where a value is shown it is the default value for that setting.
