Remote servers and virtual machines

Modern developers make use of virtual machines, cloud platforms and other remote servers to develop their applications.

JRebel eliminates redeploys by making the updated classes and resources available for the JVM and reloading the updated versions. In a local environment, this is achieved by making the JRebel agent in the JVM monitor the IDE workspace directly. With remote servers, direct monitoring is not possible – as the JVM and the IDE run in separate machines.

To match the desktop JRebel experience for developers using remote servers, JRebel provides remote servers support in the IDE plugins (Eclipse, IntelliJ IDEA and NetBeans). The JRebel IDE plugin will send your changes over the network to the remote server running your application (we call this the remote synchronization). The IDE plugin will keep track of your workspace state and always send just the latest changes. This avoids having to repackage and re-upload the entire application after every change. The JRebel Agent running on the remote application server will then update your application with the latest changes, skipping the redeploy.

When working on large applications which are comprised of multiple projects, note that you need to enable JRebel and JRebel remote server support for each project separately. This also means that each and every separate project requires its own rebel.xml and rebel-remote.xml configuration files. In case of WAR modules, these XML files should be located in the WEB-INF/classes and in case of JAR files these XML files should be present in the JAR root.

In order to get started, follow our detailed instructions in these IDE-specific tutorials: