Agent settings

Base folder configuration

JRebel’s default home folder ({user.home}/.jrebel) can be configured separately. This is useful when the user is unable to write into the default JRebel home folder for some reason. This includes situations where multiple user accounts exist on the same device. This path will contain all JRebel data, including licensing info, logs and properties file.

The JRebel base folder can be configured using the environment property REBEL_BASE or JVM argument -Drebel.base. For example:


Windows

  1. Set the following environment variable:
REBEL_BASE=Your desired JRebel base folder

Note

  • This path requires read/write privileges.

To set the environment variable:

  1. Access your Windows PC System Properties > Advanced > Environment Variables.
  2. Press New... for either User variables or System variables.
  3. Set Variable name to REBEL_BASE.
  4. Set Variable value to a system path that is readable and writeable.
  5. Press OK.

Mac OS and Linux

  1. Set the following environment variable using the command line interface:
REBEL_BASE=Your desired JRebel base folder

Setting rebel.base for IDEs

Eclipse

Add the following line to your Eclipse eclipse.ini configuration file:

-Drebel.base=Your desired JRebel base folder

IntelliJ IDEA

Add the following line to your IntelliJ’s idea.exe.vmoptions (idea.vmoptions when using Mac OS) configuration file:

-Drebel.base=Your desired JRebel base folder

NetBeans

Add the following line to your NetBeans netbeans.conf configuration file:

-Drebel.base=Your desired JRebel base folder

Agent properties

JRebel can be configured manually, using the properties file found in {rebel.base}/.jrebel/jrebel.properties. These properties can be overridden by the Java system properties. The following properties are configurable.

  • rebel.check_class_hash=[true|false] (default value: false) – Force checking the class file hash before reloading to ensure that the class content has changed. Useful when the class has been recompiled but no changes were made to the source.
  • rebel.disable_update=[true|false] (default value: false) – If set to true, disables JRebel agent version update check.
  • rebel.ide.log=[off|error|warn|info|debug|trace] – Configure JRebel IDE plugin log level. This parameter overrides settings configured from within the JRebel IDE logging settings.
  • rebel.license=/path/to/jrebel.lic (default value: {rebel.base}/.jrebel) – Specify the JRebel license file location.
  • rebel.load_embedded_plugins=[true|false] (default value: true) – Controls whether the embedded plugins are loaded. Set this to false when you’re having trouble with embedded plugins.
  • rebel.log=[true|false] (default value: false) – Enables debug logging into jrebel.log file. Use this when you’re having problems with JRebel and you need to get more context.
  • rebel.log.file=FILENAME – Set to an absolute filename that JRebel should output its log to. You can also add the wildcard {time} into the file name. This will be replaced by JRebel start time. Useful when you require a different log file from each JRebel instance. For example: rebel.log.file=C:\work\rebel{time}.log
  • rebel.log.perf=[true|false] – Enables additional logging of performance statistics into jrebel.log file. Requires JDK v1.5 or newer.
  • rebel.log.stdout=[true|false] (default value: false) – Disables all JRebel output via standard output, e.g. the console.
  • rebel.log.trace=[true|false] (default value: false) – Enables trace logging into jrebel.log file. Generates an exceedingly detailed, but extremely big log.
  • rebel.packages=PACKAGE1,PACKAGE2,... – A list of Java packages, separated using a comma. JRebel will only reload classes contained in these packages (and their subpackages). Used to restrict reloading to a limited subset of classes, for example to improve performance.
  • rebel.packages_exclude=PACKAGE1,PACKAGE2,... (default: all .class classes are reloaded) – A list of Java packages, separated using a comma. JRebel will not reload classes in these packages and their subpackages. This is used to exclude classes that produce errors with JRebel reloading. JRebel will reload classes that are not in the exclude packages and that are in an include package.
  • rebel.packages_include=PACKAGE1,PACKAGE2,... (default: all .class classes are reloaded) – A list of Java packages, separated using a comma. JRebel will reload classes in these packages and their subpackages. JRebel will reload classes that are not in the exclude packages and are in an include package. This is used to enable JAR file reloading. For example rebel.packages_include=com.mycompany.mypackage,com.thirdparty.theirpackage
  • rebel.plugins=jar1,jar2,jar3,... – Set the absolute path to load and enable plugin JARs.
  • rebel.properties=/path/to/[jrebel].properties – An alternative path for the properties file. Useful when you would like to use a different set of properties – depending on the project.
  • rebel.reload_bundles=[true|false] – Controls whether the resource bundle monitoring and reloading is allowed. Set to false when resource bundle reloading is causing problems.
  • rebel.remoting_plugin=[true|false] (default value: false) – Enable JRebel remote cloud support. This JVM argument is used in a remote server. Remote server support itself is used to update applications deployed to a remote environment straight from a developer workstation. This is set to false by default. For more information, please head over to the JRebel remote server support chapter.
  • rebel.stats.time=120 – Set the average time spent on a single redeploy. The amount is specified in seconds.
  • rebel.suppress_resource_warnings=[true|false] (default value: false) – Enable suppressing warning messages for situations where workspace paths mapped in rebel.xml are not found in the system.
  • rebel.temp.dir=DIRECTORY (default value: jrebel-temp) – Set to an absolute path of a directory where JRebel should create its temporary files.