Legacy Agent

This document details configuring servers using Legacy Agent Java 5+ (HotSpot and JRockit).

Looking for Legacy Agent configuration instructions? You can find them here: Legacy Agent.

Tip

Using a JRebel IDE plugin? You have access to all these snippets via Help > JRebel > Configuration > Startup.


Geronimo 2.x and 3.x

Windows

  1. Open %GERONIMO_HOME%\bin.
  2. Create the file geronimo-jrebel.bat with the following content:
@echo off
set REBEL_HOME=JRebel root folder.
set JAVA_OPTS=-javaagent:%REBEL_HOME%\jrebel.jar -Xms256m -Xmx512m -XX:MaxPermSize=256m %JAVA_OPTS%
call "%~dp0\geronimo.bat" %*
  1. Use this file instead of geronimo.bat to run Geronimo with JRebel.
geronimo-jrebel.bat run

Linux and Mac OS

  1. Open $GERONIMO_HOME/bin.
  2. Create the file geronimo-jrebel.sh with the following content:
#!/bin/bash
export REBEL_HOME=JRebel root folder.
export JAVA_OPTS="-javaagent:$REBEL_HOME/jrebel.jar -Xms256m -Xmx512m -XX:MaxPermSize=256m $JAVA_OPTS"
`dirname $0`/geronimo.sh $@
  1. Use this script instead of geronimo.sh to run Geronimo with JRebel.
geronimo.sh run

GlassFish 2.x, 3.x and 4.x

  1. Open the GlassFish Administration Console.
  2. Access Configuration > JVM Settings > JVM Options.
  3. Use the Add JVM Option button to insert the following:
-javaagent:[c:\path\to\]jrebel.jar
  1. Press Save. Restart the server.

JBoss 3.x, 4.x, 5.x and 6.x

Windows

  1. Open %JBOSS_HOME%\bin.
  2. Create the file run-jrebel.cmd with the following content:
@echo off
set REBEL_HOME=JRebel root folder.
set JAVA_OPTS=-javaagent:%REBEL_HOME%\jrebel.jar -Xms256m -Xmx512m -XX:MaxPermSize=256m %JAVA_OPTS%
call "%~dp0\run.bat" %*
  1. Use this file instead of run.bat to run JBoss with JRebel.

    Warning

    Any further customization to JAVA_OPTS inside the JBoss executable (default run.conf.bat) needs to be included in run-jrebel.cmd for JRebel to function correctly.


Linux and Mac OS

  1. Open $JBOSS_HOME/bin.
  2. Create the file run-jrebel.sh with the following content:
#!/bin/bash
export REBEL_HOME=JRebel root folder.
export JAVA_OPTS="-javaagent:$REBEL_HOME/jrebel.jar -Xms256m -Xmx512m -XX:MaxPermSize=256m $JAVA_OPTS"
`dirname $0`/run.sh $@
  1. Use this script instead of run.sh to run JBoss with JRebel.

    Warning

    Any further customization to JAVA_OPTS inside the JBoss executable (default run.conf.sh) needs to be included in run-jrebel.sh for JRebel to function correctly.


Google App Engine (GAE) 1.x

Windows

Add the --jvm_flag launch option to the application server startup as follows:

dev_appserver.cmd --jvm_flag=-javaagent:[c:\path\to\]jrebel.jar c:\MyApplication\

Linux and Mac OS

Add the --jvm_flag launch option to the application server startup:

dev_appserver.sh --jvm_flag=-javaagent:[/path/to/]jrebel.jar /MyApplication/

Google Web Toolkit (GWT) 2.x

Google Web Toolkit (GWT) uses Apache Ant to start a web container – either Jetty or Tomcat – along with the GWT application. To enable JRebel for GWT in development mode, you should set ANT_OPTS environment variable accordingly.

Windows

  1. Open the GWT project directory.
  2. Create the file run-jrebel.cmd with the following content:
@echo off
set REBEL_HOME=JRebel root folder.
set ANT_OPTS=-javaagent:%REBEL_HOME%\jrebel.jar
ant devmode
  1. Use run-jrebel.cmd to run your GWT application in development mode with JRebel enabled.

Linux and Mac OS

  1. Open the GWT project directory.
  2. Create the file run-jrebel.sh with the following content:
#!/bin/bash
export REBEL_HOME=JRebel root folder.
export ANT_OPTS=-javaagent:$REBEL_HOME/jrebel.jar
ant devmode
  1. Use run-jrebel.sh to run your GWT application in development mode with JRebel enabled.

JBoss 7.x

Windows

  1. Open %JBOSS_HOME%\bin.
  2. Create the file standalone-jrebel.cmd with the following content:
@echo off
set REBEL_HOME=JRebel root folder.
set JAVA_OPTS=-javaagent:%REBEL_HOME%\jrebel.jar -Xms256m -Xmx512m -XX:MaxPermSize=256m %JAVA_OPTS%
call "%~dp0\standalone.bat" %*
  1. Use this file instead of standalone.bat to run JBoss with JRebel.

    Warning

    Any further customization to JAVA_OPTS inside the JBoss executable (default standalone.conf.bat) needs to be included in standalone-jrebel.cmd for JRebel to function correctly.


Linux and Mac OS

  1. Open $JBOSS_HOME/bin.
  2. Create the file standalone-jrebel.sh with the following content:
#!/bin/bash
export REBEL_HOME=JRebel root folder.
export JAVA_OPTS="-javaagent:$REBEL_HOME/jrebel.jar -Xms256m -Xmx512m -XX:MaxPermSize=256m $JAVA_OPTS"
`dirname $0`/standalone.sh $@
  1. Use this script instead of standalone.sh to run JBoss with JRebel.

    Warning

    Any further customization to JAVA_OPTS inside the JBoss executable (default standalone.conf.sh) needs to be included in standalone-jrebel.sh for JRebel to function correctly.


Jetty 5.x, 6.x, 7.x, 8.x and 9.x

Windows

Jetty does not have any startup scripts for Windows. Just add the following line to the command line:

-javaagent:[c:\path\to\]jrebel.jar

Linux and Mac OS

  1. Open $JETTY_HOME/bin.
  2. Create the file run-jrebel.sh with the following content:
#!/bin/bash
export REBEL_HOME=JRebel root folder.
export JAVA_OPTIONS="-javaagent:$REBEL_HOME/jrebel.jar $JAVA_OPTIONS"
`dirname $0`/jetty.sh $@
  1. Use this script instead of jetty.sh to run Jetty with JRebel.

Maven Jetty plugin (mvn jetty:run)

Open your pom.xml file and set the scanIntervalSeconds parameter to 0. This will turn off Jetty’s internal reloading. It should look like this:

<plugin>
 <groupId>org.eclipse.jetty</groupId>
 <artifactId>jetty-maven-plugin</artifactId>
 <configuration>
   <scanIntervalSeconds>0</scanIntervalSeconds>
 </configuration>
</plugin>

Windows

Add the following line to the MAVEN_OPTS environment variable:

-javaagent:[c:\path\to\]jrebel.jar

To do this in the console:

set MAVEN_OPTS=-javaagent:[c:\path\to\]jrebel.jar %MAVEN_OPTS%
mvn jetty:run

Linux and Mac OS

Add the following line to the MAVEN_OPTS environment variable:

-javaagent:[/path/to/]jrebel.jar

To do this in the console:

export MAVEN_OPTS="-javaagent:[/path/to/]jrebel.jar $MAVEN_OPTS"
mvn jetty:run

OC4J (Oracle Application Server) 9.x

Windows

  1. Open %ORACLE9_HOME%\j2ee\home.
  2. Start the server with the following command:
java -javaagent:[c:\path\to\]jrebel.jar -jar oc4j.jar

Linux and Mac OS

  1. Open $ORACLE9_HOME/j2ee/home.
  2. Start the server with the following command:
java -javaagent:[/path/to/]jrebel.jar -jar oc4j.jar

OC4J (Oracle Application Server) 10.x

Windows

  1. Open %ORACLE10_HOME%\bin.
  2. Create the file oc4j-jrebel.cmd with the following content:
set REBEL_HOME=JRebel root folder.
set OC4J_JVM_ARGS=-javaagent:%REBEL_HOME%\jrebel.jar %OC4J_JVM_ARGS%
call "%~dp0\oc4j.cmd" %*
  1. Use this file instead of oc4j.cmd to run OC4J with JRebel.

Linux and Mac OS

  1. Open $ORACLE10_HOME/bin.
  2. Create the file oc4j-jrebel.sh with the following content:
#!/bin/bash
export REBEL_HOME=JRebel root folder.
export OC4J_JVM_ARGS="-javaagent:$REBEL_HOME/jrebel.jar $OC4J_JVM_ARGS"
`dirname $0`/oc4j $@
  1. Use this script instead of oc4j to run OC4J with JRebel.

Resin 3.0.x

Windows

Start httpd.exe with parameter:

httpd.exe -J-javaagent:[c:\path\to\]jrebel.jar

Linux and Mac OS

Modify ${RESIN_HOME}/bin/wrapper.pl variable $JAVA_ARGS to include the line:

-javaagent:[/path/to/]jrebel.jar

Resin 3.1.x and 4.x

Windows

Start Resin with JRebel from %RESIN_HOME% with the parameter:

java -javaagent:[c:\path\to\]jrebel.jar -jar lib\resin.jar

Linux and Mac OS

Replace the last line of ${RESIN_HOME}/bin/httpd.sh (or resin.sh in Resin 3.2+) with the following:

java -javaagent:[/path/to/]jrebel.jar -jar ${RESIN_HOME}/lib/resin.jar $*

tc Server 2.x

Windows

  1. Open %SPRING_TC_HOME%. Select the Tomcat instance (%CATALINA_BASE%) you would like to run.
  2. Open %CATALINA_BASE%\conf\wrapper.conf.
  3. In the Java Additional Parameters section, add the additional wrapper.java.additional.* properties:
wrapper.java.additional.10=-javaagent:[c:\path\to\]jrebel.jar
  1. Use the %SPRING_TC_HOME%\tcruntime-ctl.bat script to start Tomcat instances as usual.

Linux and Mac OS

  1. Create your server instance to a folder of your choice. For example $INSTANCE_DIR.
  2. Open script $INSTANCE_DIR/bin/setenv.sh.
  3. Add the following as the last line of setenv.sh:
REBEL_HOME=JRebel root folder.
JAVA_OPTS="-javaagent:$REBEL_HOME/jrebel.jar $JAVA_OPTS"
  1. Use the $SPRING_TC_HOME/tcruntime-ctl.sh script to start Tomcat instances as usual.

TCat 6.x

Windows

  1. Open %TCAT_HOME%\bin.
  2. Create the file startup-jrebel.cmd with the following content:
@echo off
set REBEL_HOME=JRebel root folder.
set JAVA_OPTS=-javaagent:%REBEL_HOME%\jrebel.jar %JAVA_OPTS%
call "%~dp0\\startup.bat" %*
  1. Alternatively, create catalina-jrebel.cmd with the following content:
@echo off
set REBEL_HOME=JRebel root folder.
set JAVA_OPTS=-javaagent:%REBEL_HOME%\jrebel.jar %JAVA_OPTS%
call "%~dp0\catalina.bat" %*
  1. Use these files instead of startup.bat and catalina.bat to run TCat with JRebel.

If you’re running TCat as a service please open the TcatServerw.exe wrapper (or double click the TCat icon in the system tray). Insert the following line into the Java > Java Options:

-javaagent:[c:\path\to\]jrebel.jar

Linux and Mac OS

  1. Open $TCAT_HOME/bin.
  2. Create the file startup-jrebel.sh with the following content:
#!/bin/bash
export REBEL_HOME=JRebel root folder.
export JAVA_OPTS="-javaagent:$REBEL_HOME/jrebel.jar $JAVA_OPTS"
`dirname $0`/startup.sh $@
  1. Alternatively, create catalina-jrebel.sh with the following content:
#!/bin/bash
export REBEL_HOME=JRebel root folder.
export JAVA_OPTS="-javaagent:$REBEL_HOME/jrebel.jar $JAVA_OPTS"
`dirname $0`/catalina.sh $@
  1. Make these files executable and use them instead of startup.sh and catalina.sh to run TCat with JRebel.

Tomcat 4.x, 5.x, 6.x, 7.x and 8.x

Windows

  1. Open %TOMCAT_HOME%\bin.
  2. Create the file catalina-jrebel.bat with the following content:
@echo off
set REBEL_HOME=JRebel root folder.
set JAVA_OPTS=-javaagent:%REBEL_HOME%\jrebel.jar %JAVA_OPTS%
call "%~dp0\catalina.bat" %*
  1. Use catalina-jrebel.bat to run Tomcat with JRebel.
catalina-jrebel.bat run

When running Tomcat as a service, please open tomcatXw.exe wrapper (or double click the Tomcat icon in the system tray). Insert the following line in Java > Java Options:

-javaagent:[c:\path\to\]jrebel.jar

Linux and Mac OS

  1. Open $TOMCAT_HOME/bin.
  2. Create the file catalina-jrebel.sh with the following content:
#!/bin/bash
export REBEL_HOME=JRebel root folder.
export JAVA_OPTS="-javaagent:$REBEL_HOME/jrebel.jar $JAVA_OPTS"
`dirname $0`/catalina.sh $@
  1. Use catalina-jrebel.sh to run Tomcat with JRebel.
./catalina-jrebel.sh run

Warning

  • When using Tomcat 4.x, 5.x or 6.x, avoid using JRebel Agent paths that include spaces.

  • Alternatively, consider using symbolic links to refer to JRebel Agent path.

    Example: ln -s /path with spaces/jrebel.jar ~/.jrebel/jrebel.jar


Virgo 3.x

Windows

  1. Open %VIRGO_HOME%\bin\startup.bat.
  2. Add the following lines:
set REBEL_HOME=JRebel root folder.
set JAVA_OPTS=-javaagent:%REBEL_HOME%\jrebel.jar %JAVA_OPTS%

Linux and Mac OS

  1. Open ${VIRGO_HOME}/bin/startup.sh.
  2. Add the following lines:
export REBEL_HOME=JRebel root folder.
export JAVA_OPTS="-javaagent:$REBEL_HOME/jrebel.jar $JAVA_OPTS"

WebLogic 8.x, 9.x, 10.x and 12.x

Windows

  1. Open %DOMAIN_HOME%\bin.
  2. Create the file startWeblogic-jrebel.cmd with the following content:
@echo off
set REBEL_HOME=JRebel root folder.
set JAVA_OPTIONS=-javaagent:%REBEL_HOME%\jrebel.jar %JAVA_OPTIONS%
call "%~dp0\startWebLogic.cmd" %*
  1. Use this file instead of startWeblogic.cmd to run WebLogic with JRebel.

    Warning

    It is highly recommended to avoid using class caching (CLASS_CACHE=true). In some cases this may prevent classes and resources from being reloaded.


Linux and Mac OS

  1. Open $DOMAIN_HOME/bin.
  2. Create the file startWeblogic-jrebel.sh with the following content:
#!/bin/bash
export REBEL_HOME=JRebel root folder.
export JAVA_OPTIONS="-javaagent:$REBEL_HOME/jrebel.jar $JAVA_OPTIONS"
`dirname $0`/startWebLogic.sh $@
  1. Use this script instead of startWeblogic.sh to run WebLogic with JRebel.

    Warning

    It is highly recommended to avoid using class caching (CLASS_CACHE=true). In some cases this may prevent classes and resources from being reloaded.


WebSphere 6.x, 7.x and 8.x

Windows

Make sure that the JRebel installation path does not contain spaces.

  1. Generate jrebel-bootstrap.jar by running java -jar jrebel.jar using the JVM you will run the application server with (you can also add this line to the startServer.sh once the environment is set).
  2. Start the IBM WebSphere server and open the administrative console.
  3. In the Admin Console open Servers > Application servers. Select the server your application is deployed to.
  4. Select Java and Process Management > Process Definition.
  5. Select Java Virtual Machine.
  6. Insert the following line into Generic JVM arguments for WebSphere 6.1 or later running on IBM JDK 5 or newer:
-noverify -Xshareclasses:none -Xbootclasspath/p:[c:\path\to\]jrebel-bootstrap.jar;[c:\path\to\]jrebel.jar
  1. Press OK. When asked, save the master configuration and restart the server.

Note

An alternative to setting the Generic JVM arguments is to generate a simple text file with extra configuration. You can have WebSphere take advantage of this text file by using the parameter Xoptionsfile=[c:\path\to\]youroptions.txt.


Linux and Mac OS

  1. Generate the jrebel-bootstrap.jar by running java -jar jrebel.jar using the JVM you will run the application server with (you can also add this line to the startServer.sh once the environment is set).
  2. Start the IBM WebSphere server and open the administrative console.
  3. In the Administration Console open Servers > Application Servers. Select the server your application is deployed to.
  4. Select Java and Process Management > Process Definition.
  5. Select Java Virtual Machine.
  6. Insert the following line into Generic JVM arguments for WebSphere 6.1 or later running on IBM JDK 5 or later:
-noverify -Xshareclasses:none -Xbootclasspath/p:[/path/to/]jrebel-bootstrap.jar:[/path/to/]jrebel.jar
  1. Press OK. When asked, save the master configuration and restart the server.

WebSphere Liberty Profile

Windows

  1. Create the file jvm.options in your IBM WebShpere Liberty Profile ${server.config.dir}/ folder.
  2. Add the following content to the jvm.options file:
-javaagent:[c:\path\to\]jrebel.jar
  1. Save the file and restart the server.

    Tip

    Create the jvm.options file in the ${wlp.install.dir}/etc/ folder to automatically apply the JVM options to all your WebShpere Liberty Profile instances.


Linux and Mac OS

  1. Create the file jvm.options in your IBM WebShpere Liberty Profile ${server.config.dir}/ folder.
  2. Add the following content to the jvm.options file:
-javaagent:[/path/to/]jrebel.jar
  1. Save the file and restart the server.

    Tip

    Create the jvm.options file in the ${wlp.install.dir}/etc/ folder to automatically apply the JVM options to all your WebShpere Liberty Profile instances.


WildFly 8.x, 9.x and 10.x

Windows

  1. Open %WILDFLY_HOME%\bin.
  2. Create the file standalone-jrebel.cmd with the following content:
@echo off
set REBEL_HOME=JRebel root folder.
set JAVA_OPTS=-javaagent:%REBEL_HOME%\jrebel.jar -Xms256m -Xmx512m -XX:MaxPermSize=256m %JAVA_OPTS%
call "%~dp0\standalone.bat" %*
  1. Use this file instead of standalone.bat to run WildFly with JRebel.

    Warning

    Any further customization to JAVA_OPTS inside the WildFly executable (default standalone.conf.bat) needs to be included in run-jrebel.cmd for JRebel to function correctly.


Linux and Mac OS

  1. Open $WILDFLY_HOME/bin.
  2. Create the file standalone-jrebel.sh with the following content:
#!/bin/bash
export REBEL_HOME=JRebel root folder.
export JAVA_OPTS="-javaagent:$REBEL_HOME/jrebel.jar -Xms256m -Xmx512m -XX:MaxPermSize=256m $JAVA_OPTS"
`dirname $0`/standalone.sh $@
  1. Use this script instead of standalone.sh to run WildFly with JRebel.

    Warning

    Any further customization to JAVA_OPTS inside the WildFly executable (default standalone.conf.sh) needs to be included in standalone-jrebel.sh for JRebel to function correctly.


WildFly 10.x

Windows 64-bit

  1. Open %WILDFLY_HOME%\bin.
  2. Create the file standalone-jrebel.cmd with the following content:
@echo off
set REBEL_HOME=JRebel root folder.
set JAVA_OPTS=-agentpath:%REBEL_HOME%\lib\jrebel64.dll -Xms256m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m %JAVA_OPTS%
call "%~dp0\standalone.bat" %*
  1. Use this file instead of standalone.bat to run WildFly with JRebel.

    Warning

    Any further customization to JAVA_OPTS inside the WildFly executable (default standalone.conf.bat) needs to be included in run-jrebel.cmd for JRebel to function correctly.


Windows 32-bit

  1. Open %WILDFLY_HOME%\bin.
  2. Create the file standalone-jrebel.cmd with the following content:
@echo off
set REBEL_HOME=JRebel root folder.
set JAVA_OPTS=-agentpath:%REBEL_HOME%\lib\jrebel32.dll -Xms256m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m %JAVA_OPTS%
call "%~dp0\standalone.bat" %*
  1. Use this file instead of standalone.bat to run WildFly with JRebel.

    Warning

    Any further customization to JAVA_OPTS inside the WildFly executable (default standalone.conf.bat) needs to be included in run-jrebel.cmd for JRebel to function correctly.


macOS 64-bit

  1. Open $WILDFLY_HOME/bin.
  2. Create the file standalone-jrebel.sh with the following content:
#!/bin/bash
export REBEL_HOME=JRebel root folder.
export JAVA_OPTS="-agentpath:$REBEL_HOME/lib/libjrebel64.dylib -Xms256m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m $JAVA_OPTS"
`dirname $0`/standalone.sh $@
  1. Use this script instead of standalone.sh to run WildFly with JRebel.

    Warning

    Any further customization to JAVA_OPTS inside the WildFly executable (default standalone.conf.sh) needs to be included in standalone-jrebel.sh for JRebel to function correctly.


macOS 32-bit

  1. Open $WILDFLY_HOME/bin.
  2. Create the file standalone-jrebel.sh with the following content:
#!/bin/bash
export REBEL_HOME=JRebel root folder.
export JAVA_OPTS="-agentpath:$REBEL_HOME/lib/libjrebel32.dylib -Xms256m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m $JAVA_OPTS"
`dirname $0`/standalone.sh $@
  1. Use this script instead of standalone.sh to run WildFly with JRebel.

    Warning

    Any further customization to JAVA_OPTS inside the WildFly executable (default standalone.conf.sh) needs to be included in standalone-jrebel.sh for JRebel to function correctly.


Linux 64-bit

  1. Open $WILDFLY_HOME/bin.
  2. Create the file standalone-jrebel.sh with the following content:
#!/bin/bash
export REBEL_HOME=JRebel root folder.
export JAVA_OPTS="-agentpath:$REBEL_HOME/lib/libjrebel64.so -Xms256m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m $JAVA_OPTS"
`dirname $0`/standalone.sh $@
  1. Use this script instead of standalone.sh to run WildFly with JRebel.

    Warning

    Any further customization to JAVA_OPTS inside the WildFly executable (default standalone.conf.sh) needs to be included in standalone-jrebel.sh for JRebel to function correctly.


Linux 32-bit

  1. Open $WILDFLY_HOME/bin.
  2. Create the file standalone-jrebel.sh with the following content:
#!/bin/bash
export REBEL_HOME=JRebel root folder.
export JAVA_OPTS="-agentpath:$REBEL_HOME/lib/libjrebel32.so -Xms256m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m $JAVA_OPTS"
`dirname $0`/standalone.sh $@
  1. Use this script instead of standalone.sh to run WildFly with JRebel.

    Warning

    Any further customization to JAVA_OPTS inside the WildFly executable (default standalone.conf.sh) needs to be included in standalone-jrebel.sh for JRebel to function correctly.