=32-bit JVM|64-bit JVM=

==Geronimo 2.x and 3.x==

===Linux|macOS===
====Download and extract the JRebel distribution onto the remote server:====
{{{
curl -O http://dl.zeroturnaround.com/jrebel-stable-nosetup.zip
unzip jrebel-stable-nosetup.zip
}}}
====Open $GERONIMO_HOME/bin.====
====Create the file geronimo-jrebel.sh with the following content, replacing ${{jrebel.home.jar}} as necessary:====
{{{
#!/bin/bash
export REBEL_HOME="${{jrebel.home.jar}}"
export JAVA_OPTS="\"-agentpath:$REBEL_HOME${{jrebel.lib}}\" ${{java.extra.options}} -Xms256m -Xmx512m -XX:MaxPermSize=256m $JAVA_OPTS"
`dirname $0`/geronimo.sh $@
}}}
====Use this script instead of geronimo.sh to run Geronimo with JRebel.====
{{{
geronimo-jrebel.sh run
}}}

===Windows===
====Open %GERONIMO_HOME%\bin.====
====Create the file geronimo-jrebel.bat with the following content, replacing ${{jrebel.home.jar}} as necessary:====
{{{
@echo off
set REBEL_HOME=${{jrebel.home.jar}}
set JAVA_OPTS=-agentpath:%REBEL_HOME%${{jrebel.lib}} ${{java.extra.options}} -Xms256m -Xmx512m -XX:MaxPermSize=256m %JAVA_OPTS%
call "%~dp0\geronimo.bat" %*
}}}
====Use this file instead of geronimo.bat to run Geronimo with JRebel.====
{{{
geronimo-jrebel.bat run
}}}


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

===Linux|macOS===
====Download and extract the JRebel distribution onto the remote server:====
{{{
curl -O http://dl.zeroturnaround.com/jrebel-stable-nosetup.zip
unzip jrebel-stable-nosetup.zip
}}}
====Open the *GlassFish Administration Console.*====
====Access *Configuration > JVM Settings > JVM Options.*====
====Use the *Add JVM Option* button to insert the following options, replacing ${{jrebel.home.jar}} as necessary:====
{{{
-agentpath:${{jrebel.home.jar}}${{jrebel.lib}}
${{java.extra.options}}
}}}
====Press *Save*. Restart the server.====

===Windows===
====Open the *GlassFish Administration Console.*====
====Access *Configuration > JVM Settings > JVM Options.*====
====Use the *Add JVM Option* button to insert the following options, replacing ${{jrebel.home.jar}} as necessary:====
{{{
-agentpath:${{jrebel.home.jar}}${{jrebel.lib}}
${{java.extra.options}}
}}}
====Press *Save*. Restart the server.====

==Google App Engine 1.x==

===Linux|macOS===
====Download and extract the JRebel distribution onto the remote server:====
{{{
curl -O http://dl.zeroturnaround.com/jrebel-stable-nosetup.zip
unzip jrebel-stable-nosetup.zip
}}}
====Add the *--jvm_flag* launch option to the application server startup, replacing ${{jrebel.home.jar}} as necessary:====
{{{
dev_appserver.sh --jvm_flag=-agentpath:${{jrebel.home.jar}}${{jrebel.lib}} --jvm_flag=${{java.extra.options}} /MyApplication/
}}}

===Windows===
====Add the *--jvm_flag* launch option to the application server startup, replacing ${{jrebel.home.jar}} as necessary:====
{{{
dev_appserver.cmd --jvm_flag=-agentpath:${{jrebel.home.jar}}${{jrebel.lib}} --jvm_flag=${{java.extra.options}} c:\MyApplication\
}}}


==GWT (Google Web Toolkit) 2.x==

===Linux|macOS===
====Download and extract the JRebel distribution onto the remote server:====
{{{
curl -O http://dl.zeroturnaround.com/jrebel-stable-nosetup.zip
unzip jrebel-stable-nosetup.zip
}}}
====Open the GWT project directory.====
====Create the file run-jrebel.sh with the following content, replacing ${{jrebel.home.jar}} as necessary:====
{{{
#!/bin/bash
export REBEL_HOME="${{jrebel.home.jar}}"
export ANT_OPTS="\"-agentpath:$REBEL_HOME${{jrebel.lib}}\" ${{java.extra.options}}"
ant devmode
}}}
====Use run-jrebel.sh to run your GWT application in development mode with JRebel enabled.====

===Windows===
====Open the GWT project directory.====
====Create the file run-jrebel.cmd with the following content, replacing ${{jrebel.home.jar}} as necessary:====
{{{
@echo off
set REBEL_HOME=${{jrebel.home.jar}}
set ANT_OPTS=-agentpath:%REBEL_HOME%${{jrebel.lib}} ${{java.extra.options}}
ant devmode
}}}
====Use run-jrebel.cmd to run your GWT application in development mode with JRebel enabled.====

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

===Linux|macOS===
====Download and extract the JRebel distribution onto the remote server:====
{{{
curl -O http://dl.zeroturnaround.com/jrebel-stable-nosetup.zip
unzip jrebel-stable-nosetup.zip
}}}
====Open $JBOSS_HOME/bin.====
====Create the file run-jrebel.sh with the following content, replacing ${{jrebel.home.jar}} as necessary:====
{{{
#!/bin/bash
export REBEL_HOME="${{jrebel.home.jar}}"
export JAVA_OPTS="\"-agentpath:$REBEL_HOME${{jrebel.lib}}\" ${{java.extra.options}} -Xms256m -Xmx512m -XX:MaxPermSize=256m $JAVA_OPTS"
`dirname $0`/run.sh $@
}}}
====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.

===Windows===
====Open %JBOSS_HOME%\bin.====
====Create the file run-jrebel.cmd with the following content, replacing ${{jrebel.home.jar}} as necessary:====
{{{
@echo off
set REBEL_HOME=${{jrebel.home.jar}}
set JAVA_OPTS=-agentpath:%REBEL_HOME%${{jrebel.lib}} ${{java.extra.options}} -Xms256m -Xmx512m -XX:MaxPermSize=256m %JAVA_OPTS%
call "%~dp0\run.bat" %*
}}}
====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.


==JBoss 7.x==

===Linux|macOS===
====Download and extract the JRebel distribution onto the remote server:====
{{{
curl -O http://dl.zeroturnaround.com/jrebel-stable-nosetup.zip
unzip jrebel-stable-nosetup.zip
}}}
====Open $JBOSS_HOME/bin.====
====Create the file standalone-jrebel.sh with the following content, replacing ${{jrebel.home.jar}} as necessary:====
{{{
#!/bin/bash
export REBEL_HOME="${{jrebel.home.jar}}"
export JAVA_OPTS="\"-agentpath:$REBEL_HOME${{jrebel.lib}}\" ${{java.extra.options}} -Xms256m -Xmx512m -XX:MaxPermSize=256m $JAVA_OPTS"
`dirname $0`/standalone.sh $@
}}}
====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.

===Windows===
====Open %JBOSS_HOME%\bin.====
====Create the file standalone-jrebel.cmd with the following content, replacing ${{jrebel.home.jar}} as necessary:====
{{{
@echo off
set REBEL_HOME=${{jrebel.home.jar}}
set JAVA_OPTS=-agentpath:%REBEL_HOME%${{jrebel.lib}} ${{java.extra.options}} -Xms256m -Xmx512m -XX:MaxPermSize=256m %JAVA_OPTS%
call "%~dp0\standalone.bat" %*
}}}
====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.

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

===Linux|macOS===
====Download and extract the JRebel distribution onto the remote server:====
{{{
curl -O http://dl.zeroturnaround.com/jrebel-stable-nosetup.zip
unzip jrebel-stable-nosetup.zip
}}}
====Open $JETTY_HOME/bin.====
====Create the file run-jrebel.sh with the following content, replacing ${{jrebel.home.jar}} as necessary:====
{{{
#!/bin/bash
export REBEL_HOME="${{jrebel.home.jar}}"
export JAVA_OPTIONS="\"-agentpath:$REBEL_HOME${{jrebel.lib}}\" ${{java.extra.options}} -Xms256m -Xmx512m -XX:MaxPermSize=256m $JAVA_OPTIONS"
`dirname $0`/jetty.sh $@
}}}
====Use this script instead of jetty.sh to run Jetty with JRebel.====

===Windows===
====Jetty does not have any startup scripts for Windows. Just add the following line to the command line, replacing ${{jrebel.home.jar}} as necessary:====
{{{
-agentpath:${{jrebel.home.jar}}${{jrebel.lib}} ${{java.extra.options}}
}}}


==Maven Jetty plugin (mvn jetty:run)==

===Linux|macOS===
====Download and extract the JRebel distribution onto the remote server:====
{{{
curl -O http://dl.zeroturnaround.com/jrebel-stable-nosetup.zip
unzip jrebel-stable-nosetup.zip
}}}
====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>
}}}
====Add the following line to the MAVEN_OPTS environment variable, replacing ${{jrebel.home.jar}} as necessary:====
{{{
-agentpath:${{jrebel.home.jar}}${{jrebel.lib}} ${{java.extra.options}}
}}}
====To do this in the console:====
{{{
export MAVEN_OPTS="-agentpath:${{jrebel.home.jar}}${{jrebel.lib}} ${{java.extra.options}} $MAVEN_OPTS"
mvn jetty:run
}}}

===Windows===
====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>
}}}
====Add the following line to the MAVEN_OPTS environment variable, replacing ${{jrebel.home.jar}} as necessary:====
{{{
-agentpath:${{jrebel.home.jar}}${{jrebel.lib}} ${{java.extra.options}}
}}}
====To do this in the console:====
{{{
set MAVEN_OPTS=-agentpath:${{jrebel.home.jar}}${{jrebel.lib}} ${{java.extra.options}} %MAVEN_OPTS%
mvn jetty:run
}}}

==OC4J 9.x (Oracle Application Server)==

===Linux|macOS===
====Download and extract the JRebel distribution onto the remote server:====
{{{
curl -O http://dl.zeroturnaround.com/jrebel-stable-nosetup.zip
unzip jrebel-stable-nosetup.zip
}}}
====Open $ORACLE9_HOME/j2ee/home.====
====Start the server with the following command, replacing ${{jrebel.home.jar}} as necessary:====
{{{
java -agentpath:${{jrebel.home.jar}}${{jrebel.lib}} ${{java.extra.options}} -jar oc4j.jar
}}}

===Windows===
====Open %ORACLE9_HOME%\j2ee\home.====
====Start the server with the following command, replacing ${{jrebel.home.jar}} as necessary:====
{{{
java -agentpath:${{jrebel.home.jar}}${{jrebel.lib}} ${{java.extra.options}} -jar oc4j.jar
}}}


==OC4J 10.x (Oracle Application Server)==

===Linux|macOS===
====Download and extract the JRebel distribution onto the remote server:====
{{{
curl -O http://dl.zeroturnaround.com/jrebel-stable-nosetup.zip
unzip jrebel-stable-nosetup.zip
}}}
====Open $ORACLE10_HOME/bin.====
====Create the file oc4j-jrebel.sh with the following content, replacing ${{jrebel.home.jar}} as necessary:====
{{{
#!/bin/bash
export REBEL_HOME="${{jrebel.home.jar}}"
export OC4J_JVM_ARGS="\"-agentpath:$REBEL_HOME${{jrebel.lib}}\" ${{java.extra.options}} $OC4J_JVM_ARGS"
`dirname $0`/oc4j $@
}}}
====Use this script instead of oc4j to run OC4J with JRebel.====

===Windows===
====Open %ORACLE10_HOME%\bin.====
====Create the file run-oc4j.cmd with the following content, replacing ${{jrebel.home.jar}} as necessary:====
{{{
set REBEL_HOME=${{jrebel.home.jar}}
set OC4J_JVM_ARGS=-agentpath:%REBEL_HOME%${{jrebel.lib}} ${{java.extra.options}} %OC4J_JVM_ARGS%
call "%~dp0\oc4j.cmd" %*
}}}
====Use this file instead of oc4j.cmd to run OC4J with JRebel.====


==Payara 4.1.x and 5.x==

===Linux|macOS===
====Download and extract the JRebel distribution onto the remote server:====
{{{
curl -O http://dl.zeroturnaround.com/jrebel-stable-nosetup.zip
unzip jrebel-stable-nosetup.zip
}}}
====Open the *Payara Administration Console.*====
====Access *Configuration > JVM Settings > JVM Options.*====
====Use the *Add JVM Option* button to insert the following options, replacing ${{jrebel.home.jar}} as necessary:====
{{{
-agentpath:${{jrebel.home.jar}}${{jrebel.lib}}
${{java.extra.options}}
}}}
====Press *Save*. Restart the server.====

===Windows===
====Open the *Payara Administration Console.*====
====Access *Configuration > JVM Settings > JVM Options.*====
====Use the *Add JVM Option* button to insert the following options, replacing ${{jrebel.home.jar}} as necessary:====
{{{
-agentpath:${{jrebel.home.jar}}${{jrebel.lib}}
${{java.extra.options}}
}}}
====Press *Save*. Restart the server.====


==Resin 3.1.x and 4.x==

===Linux|macOS===
====Download and extract the JRebel distribution onto the remote server:====
{{{
curl -O http://dl.zeroturnaround.com/jrebel-stable-nosetup.zip
unzip jrebel-stable-nosetup.zip
}}}
====Replace the last line of ${RESIN_HOME}/bin/httpd.sh (or resin.sh in Resin 3.2+) with the following, replacing ${{jrebel.home.jar}} as necessary:====
{{{
java -agentpath:${{jrebel.home.jar}}${{jrebel.lib}} ${{java.extra.options}} -jar ${RESIN_HOME}/lib/resin.jar $*
}}}

===Windows===
====Start Resin with JRebel from %RESIN_HOME% with the parameter, replacing ${{jrebel.home.jar}} as necessary:====
{{{
java -agentpath:${{jrebel.home.jar}}${{jrebel.lib}} ${{java.extra.options}} -jar lib\resin.jar
}}}

==Spring Boot 1.x==

===Linux|macOS===
====Use one of the following instructions based on your Spring Boot startup method:====
When running your application using java -jar, add -agentpath and rebel.remoting_plugin property as follows:
{{{
java "-agentpath:${{jrebel.home.jar}}${{jrebel.lib}}" ${{java.extra.options}} -jar myapp-boot.jar
}}}
When running your application using the Maven Spring Boot plugin, add the run.jvmArguments property as follows:
{{{
mvn spring-boot:run -Drun.jvmArguments="-agentpath:${{jrebel.home.jar}}${{jrebel.lib}} ${{java.extra.options}}"
}}}
When running your application using gradle bootRun, add to build.gradle:
{{{
if (project.hasProperty('rebelAgent')) {
    bootRun.jvmArgs += rebelAgent
    bootRun.jvmArgs += '${{java.extra.options}}'
}
}}}
Add to ~/.gradle/gradle.properties (create this file if it doesn't exist):
{{{
rebelAgent=-agentpath:${{jrebel.home.jar.escaped}}${{jrebel.lib.escaped}}
}}}

===Windows===
====Use one of the following instructions based on your Spring Boot startup method:====
When running your application using java -jar, add -agentpath and rebel.remoting_plugin property as follows:
{{{
java "-agentpath:${{jrebel.home.jar}}${{jrebel.lib}}" ${{java.extra.options}} -jar myapp-boot.jar
}}}
When running your application using the Maven Spring Boot plugin, add the run.jvmArguments property as follows:
{{{
mvn spring-boot:run -Drun.jvmArguments="-agentpath:${{jrebel.home.jar}}${{jrebel.lib}} ${{java.extra.options}}"
}}}
When running your application using gradle bootRun, add to build.gradle:
{{{
if (project.hasProperty('rebelAgent')) {
    bootRun.jvmArgs += rebelAgent
    bootRun.jvmArgs += '${{java.extra.options}}'
}
}}}
Add to ~/.gradle/gradle.properties (create this file if it doesn't exist):
{{{
rebelAgent=-agentpath:${{jrebel.home.jar.escaped}}${{jrebel.lib.escaped}}
}}}


==Spring Boot 2.x==

===Linux|macOS===
====Use one of the following instructions based on your Spring Boot startup method:====
When running your application using java -jar, add -agentpath and rebel.remoting_plugin property as follows:
{{{
java "-agentpath:${{jrebel.home.jar}}${{jrebel.lib}}" ${{java.extra.options}} -jar myapp-boot.jar
}}}
When running your application using the Maven Spring Boot plugin, add the spring-boot.run.jvmArguments property as follows:
{{{
mvn spring-boot:run -Dspring-boot.run.jvmArguments="-agentpath:${{jrebel.home.jar}}${{jrebel.lib}} ${{java.extra.options}}"
}}}
When running your application using gradle bootRun, add to build.gradle:
{{{
if (project.hasProperty('rebelAgent')) {
    bootRun.jvmArgs += rebelAgent
    bootRun.jvmArgs += '${{java.extra.options}}'
}
}}}
Add to ~/.gradle/gradle.properties (create this file if it doesn't exist):
{{{
rebelAgent=-agentpath:${{jrebel.home.jar.escaped}}${{jrebel.lib.escaped}}
}}}

===Windows===
====Use one of the following instructions based on your Spring Boot startup method:====
When running your application using java -jar, add -agentpath and rebel.remoting_plugin property as follows:
{{{
java "-agentpath:${{jrebel.home.jar}}${{jrebel.lib}}" ${{java.extra.options}} -jar myapp-boot.jar
}}}
When running your application using the Maven Spring Boot plugin, add the spring-boot.run.jvmArguments property as follows:
{{{
mvn spring-boot:run -Dspring-boot.run.jvmArguments="-agentpath:${{jrebel.home.jar}}${{jrebel.lib}} ${{java.extra.options}}"
}}}
When running your application using gradle bootRun, add to build.gradle:
{{{
if (project.hasProperty('rebelAgent')) {
    bootRun.jvmArgs += rebelAgent
    bootRun.jvmArgs += '${{java.extra.options}}'
}
}}}
Add to ~/.gradle/gradle.properties (create this file if it doesn't exist):
{{{
rebelAgent=-agentpath:${{jrebel.home.jar.escaped}}${{jrebel.lib.escaped}}
}}}


==Standalone application==

===Linux|macOS===
====Download and extract the JRebel distribution onto the remote server:====
{{{
curl -O http://dl.zeroturnaround.com/jrebel-stable-nosetup.zip
unzip jrebel-stable-nosetup.zip
}}}
====Add JRebel arguments to the JVM command line, replacing ${{jrebel.home.jar}} as necessary:====
{{{
java -agentpath:${{jrebel.home.jar}}${{jrebel.lib}} ${{java.extra.options}} -Drebel.remoting_port=[port number] foo.bar.MyApp
}}}

===Windows===
====Add JRebel arguments to the JVM command line, replacing ${{jrebel.home.jar}} as necessary:====
{{{
java -agentpath:${{jrebel.home.jar}}${{jrebel.lib}} ${{java.extra.options}} -Drebel.remoting_port=[port number] foo.bar.MyApp
}}}

==tc Server 2.x and 3.x==

===Linux|macOS===
====Download and extract the JRebel distribution onto the remote server:====
{{{
curl -O http://dl.zeroturnaround.com/jrebel-stable-nosetup.zip
unzip jrebel-stable-nosetup.zip
}}}
====Create your server instance to a folder of your choice. For example $INSTANCE_DIR====
====Open script $INSTANCE_DIR/bin/setenv.sh.====
====Add the following as the last lines of setenv.sh, replacing ${{jrebel.home.jar}} as necessary:====
{{{
REBEL_HOME="${{jrebel.home.jar}}"
JAVA_OPTS="\"-agentpath:$REBEL_HOME${{jrebel.lib}}\" ${{java.extra.options}} $JAVA_OPTS"
}}}
====Use the $SPRING_TC_HOME/tcruntime-ctl.sh script to start Tomcat instances as usual.====

===Windows===
====Open %SPRING_TC_HOME%. Select the Tomcat instance (%CATALINA_BASE%) you would like to run.====
====Open %CATALINA_BASE%\conf\wrapper.conf.====
====In the Java Additional Parameters section, add the additional `wrapper.java.additional.*` properties, replacing ${{jrebel.home.jar}} as necessary:====
{{{
wrapper.java.additional.10=-agentpath:${{jrebel.home.jar}}${{jrebel.lib}} ${{java.extra.options}}
}}}
====Use the %SPRING_TC_HOME%\tcruntime-ctl.bat script to start Tomcat instances as usual.====


==TCat 6.x and 7.x==

===Linux|macOS===
====Download and extract the JRebel distribution onto the remote server:====
{{{
curl -O http://dl.zeroturnaround.com/jrebel-stable-nosetup.zip
unzip jrebel-stable-nosetup.zip
}}}
====Open $TCAT_HOME/bin====
====Create the file startup-jrebel.sh with the following content, replacing ${{jrebel.home.jar}} as necessary:====
{{{
#!/bin/bash
export REBEL_HOME="${{jrebel.home.jar}}"
export JAVA_OPTS="\"-agentpath:$REBEL_HOME${{jrebel.lib}}\" ${{java.extra.options}} $JAVA_OPTS"
`dirname $0`/startup.sh $@
}}}
====Alternatively, create catalina-jrebel.sh with the following content:====
{{{
#!/bin/bash
export REBEL_HOME="${{jrebel.home.jar}}"
export JAVA_OPTS="\"-agentpath:$REBEL_HOME${{jrebel.lib}}\" ${{java.extra.options}} $JAVA_OPTS"
`dirname $0`/catalina.sh $@
}}}
====Make these files executable and use them instead of startup.sh and catalina.sh to run TCat with JRebel.====

===Windows===
====Open %TCAT_HOME%\bin.====
====Create the file startup-jrebel.cmd with the following content, replacing ${{jrebel.home.jar}} as necessary:====
{{{
@echo off
set REBEL_HOME=${{jrebel.home.jar}}
set JAVA_OPTS=-agentpath:%REBEL_HOME%${{jrebel.lib}} ${{java.extra.options}} %JAVA_OPTS%
call "%~dp0\startup.bat" %*
}}}
====Alternatively, create catalina-jrebel.cmd with the following content:====
{{{
@echo off
set REBEL_HOME=${{jrebel.home.jar}}
set JAVA_OPTS=-agentpath:%REBEL_HOME%${{jrebel.lib}} ${{java.extra.options}} %JAVA_OPTS%
call "%~dp0\catalina.bat" %*
}}}
====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:
{{{
-agentpath:${{jrebel.home.jar}}${{jrebel.lib}} ${{java.extra.options}}
}}}


==Tomcat 5.x, 6.x, 7.x, 8.x and 9.x==

===Linux|macOS===
====Download and extract the JRebel distribution onto the remote server:====
{{{
curl -O http://dl.zeroturnaround.com/jrebel-stable-nosetup.zip
unzip jrebel-stable-nosetup.zip
}}}
====Open $TOMCAT_HOME/bin.====
====Create the file catalina-jrebel.sh with the following content, replacing ${{jrebel.home.jar}} as necessary:====
{{{
#!/bin/bash
export REBEL_HOME="${{jrebel.home.jar}}"
export JAVA_OPTS="\"-agentpath:$REBEL_HOME${{jrebel.lib}}\" ${{java.extra.options}} $JAVA_OPTS"
`dirname $0`/catalina.sh $@
}}}
====Use catalina-jrebel.sh to run Tomcat with JRebel.====
{{{
./catalina-jrebel.sh run
}}}

===Windows===
====Open %TOMCAT_HOME%\bin.====
====Create the file catalina-jrebel.bat with the following content, replacing ${{jrebel.home.jar}} as necessary:====
{{{
@echo off
set REBEL_HOME=${{jrebel.home.jar}}
set JAVA_OPTS="-agentpath:%REBEL_HOME%${{jrebel.lib}}" ${{java.extra.options}} %JAVA_OPTS%
call "%~dp0\catalina.bat" %*
}}}
====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:
{{{
-agentpath:${{jrebel.home.jar}}${{jrebel.lib}}
${{java.extra.options}}
}}}


==Virgo 3.x==

===Linux|macOS===
====Download and extract the JRebel distribution onto the remote server:====
{{{
curl -O http://dl.zeroturnaround.com/jrebel-stable-nosetup.zip
unzip jrebel-stable-nosetup.zip
}}}
====Open ${VIRGO_HOME}/bin/startup.sh====
====Add the following lines, replacing ${{jrebel.home.jar}} as necessary:====
{{{
export REBEL_HOME="${{jrebel.home.jar}}"
export JAVA_OPTS="\"-agentpath:$REBEL_HOME${{jrebel.lib}}\" ${{java.extra.options}} $JAVA_OPTS"
}}}

===Windows===
====Open %VIRGO_HOME%\bin\startup.bat====
====Add the following lines, replacing ${{jrebel.home.jar}} as necessary:====
{{{
set REBEL_HOME=${{jrebel.home.jar}}
set JAVA_OPTS=-agentpath:%REBEL_HOME%${{jrebel.lib}} ${{java.extra.options}} %JAVA_OPTS%
}}}

==WebLogic 10.x and 12.x==

===Linux|macOS===
====Download and extract the JRebel distribution onto the remote server:====
{{{
curl -O http://dl.zeroturnaround.com/jrebel-stable-nosetup.zip
unzip jrebel-stable-nosetup.zip
}}}
====Open $DOMAIN_HOME/bin====
====Create the file startWeblogic-jrebel.sh with the following content, replacing ${{jrebel.home.jar}} as necessary:====
{{{
#!/bin/bash
export REBEL_HOME="${{jrebel.home.jar}}"
export JAVA_OPTIONS="\"-agentpath:$REBEL_HOME${{jrebel.lib}}\" ${{java.extra.options}} $JAVA_OPTIONS"
`dirname $0`/startWebLogic.sh $@
}}}
====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.

===Windows===
====Open %DOMAIN_HOME%\bin====
====Create the file startWeblogic-jrebel.cmd with the following content, replacing ${{jrebel.home.jar}} as necessary:====
{{{
@echo off
set REBEL_HOME=${{jrebel.home.jar}}
set JAVA_OPTIONS=-agentpath:%REBEL_HOME%${{jrebel.lib}} ${{java.extra.options}} %JAVA_OPTIONS%
call "%~dp0\startWebLogic.cmd" %*
}}}
====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.


==WebSphere 7.x,8.x and 9.x==

===Linux|macOS===
====Download and extract the JRebel distribution onto the remote server:====
{{{
curl -O http://dl.zeroturnaround.com/jrebel-stable-nosetup.zip
unzip jrebel-stable-nosetup.zip
}}}
====Start the IBM WebSphere server and open the administrative console.====
====In the Administration Console open Servers > Application Servers. Select the server your application is deployed to.====
====Select Java and Process Management > Process Definition.====
====Select Java Virtual Machine.====
====Insert the following line into Generic JVM arguments for WebSphere 7.x or newer running on IBM JDK 6 or newer, replacing ${{jrebel.home.jar}} as necessary:====
{{{
-Xshareclasses:none -agentpath:${{jrebel.home.jar}}${{jrebel.lib}} ${{java.extra.options}}
}}}
====Press OK. When asked, save the master configuration and restart the server.====

===Windows===
====Make sure that JRebel installation folder path does not contain spaces.====
====Start the IBM WebSphere server and open the administrative console.====
====In the Admin Console open Servers > Application servers. Select the server your application is deployed to.====
====Select Java and Process Management > Process Definition.====
====Select Java Virtual Machine.====
====Insert the following line into Generic JVM arguments for WebSphere 7.x or newer running on IBM JDK 6 or newer, replacing ${{jrebel.home.jar}} as necessary:====
{{{
-Xshareclasses:none -agentpath:${{jrebel.home.jar}}${{jrebel.lib}} ${{java.extra.options}}
}}}
====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.


==WebSphere Liberty Profile==

===Linux|macOS===
====Download and extract the JRebel distribution onto the remote server:====
{{{
curl -O http://dl.zeroturnaround.com/jrebel-stable-nosetup.zip
unzip jrebel-stable-nosetup.zip
}}}
====Create the file jvm.options in your IBM WebShpere Liberty Profile ${server.config.dir} folder.====
====Add the following content to the jvm.options file, replacing ${{jrebel.home.jar}} as necessary:====
{{{
-agentpath:${{jrebel.home.jar}}${{jrebel.lib}}
${{java.extra.options}}
}}}
====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.

===Windows===
====Create the file jvm.options in your IBM WebShpere Liberty Profile ${server.config.dir} folder.====
====Add the following content to the jvm.options file, replacing ${{jrebel.home.jar}} as necessary:====
{{{
-agentpath:${{jrebel.home.jar}}${{jrebel.lib}}
${{java.extra.options}}
}}}
====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 or newer==

===Linux|macOS===
====Download and extract the JRebel distribution onto the remote server:====
{{{
curl -O http://dl.zeroturnaround.com/jrebel-stable-nosetup.zip
unzip jrebel-stable-nosetup.zip
}}}
====Open $WILDFLY_HOME/bin.====
====Create the file standalone-jrebel.sh with the following content, replacing ${{jrebel.home.jar}} as necessary:====
{{{
#!/bin/bash
export REBEL_HOME="${{jrebel.home.jar}}"
export JAVA_OPTS="\"-agentpath:$REBEL_HOME${{jrebel.lib}}\" ${{java.extra.options}} -Xms256m -Xmx512m -XX:MaxPermSize=256m $JAVA_OPTS"
`dirname $0`/standalone.sh $@
}}}
====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.

===Windows===
====Open %WILDFLY_HOME%\bin====
====Create the file standalone-jrebel.cmd with the following content, replacing ${{jrebel.home.jar}} as necessary:====
{{{
@echo off
set REBEL_HOME=${{jrebel.home.jar}}
set JAVA_OPTS=-agentpath:%REBEL_HOME%${{jrebel.lib}} ${{java.extra.options}} -Xms256m -Xmx512m -XX:MaxPermSize=256m %JAVA_OPTS%
call "%~dp0\standalone.bat" %*
}}}
====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.
