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 sends your changes over the network to the remote server running your application (we call this the remote synchronization). The IDE plugin also keeps track of your workspace state and always sends 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 can then update your application with the latest changes, skipping the redeploy.

JRebel now features a central Remote servers view for managing the servers you work with (available for Eclipse and IntelliJ IDEA and coming soon to NetBeans). Add one or more remote servers you want to work with and make sure they are enabled – only the enabled servers are used. You can have multiple active servers at the same time. Whenever you synchronize, all of them get updated simultaneously.

This is how managing the remote servers looks like in Eclipse:

After having added a remote server (or two), navigate to the Projects view. From here, enable JRebel remote server support for the projects you want to work with on the remote server (check the checkboxes in the column):

JRebel does not require you to explicitly define which of your projects are deployed to which remote servers. Instead, it will try to synchronize all open projects with changes to all active servers. If a project is not deployed to one of the servers, that project/server combination is simply ignored.

Having gone through these steps, you are ready to start updating the application on the server with the code changes you make in the IDE. You can do this by enabling automatic synchronization or by clicking the Synchronize button on the toolbar. You can also find this command in the Run menu. Enabling automatic synchronization will synchronize whenever your classes are recompiled or when your other resources are modified. Disabling this option will give you explicit control over the moment when you want to update the application in the server.

To get started, follow our detailed instructions in these IDE-specific tutorials:

Works with your environment

You can use the JRebel remote servers feature to connect to any Java server that has JRebel enabled. The remote servers feature does not depend on the platform that the remote server is running on, as long as it is a supported application server (all common application servers are supported). Your JRebel IDE plugin needs to be able to connect to the host and port the server is running on.

All this means that the JRebel remote server configuration will be fairly similar, regardless of how you run your remote server. Here are some examples of technologies that JRebel supports by using the remote servers feature:

VirtualBox virtual machines

VMware virtual machines

Docker

Vagrant

cloud platforms

custom corporate remote servers

If your server is publicly accessible, you might consider enabling additional security for it — by setting a password for synchronization on the server and configuring it on the IDE.

Try our remote server feature and get rid of your redeploys on any virtual or remote Java server you might have.

Sander has been in software industry for over 10 years. He has an MSc in computer science and a decade’s worth of Java experience. He was one of the first guys to join ZeroTurnaround when it was a tiny startup back in 2009. Sander is currently the product manager for JRebel tooling, taking care of JRebel IDE plugins, the ZeroTurnaround License Server, licensing and remote server support. Sander also has a law degree, with special interest for intellectual property law. He has been helping ZeroTurnaround with intellectual property related topics in the recent years.