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.
Setting up JRebel remote servers
- Configure your remote server server to run with JRebel via
- Add the remote server to your IDE workspace.
- Enable JRebel remote server support for your project.
- Redeploy the project to your remote server once.
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:
- JRebel with remote servers on Eclipse
- JRebel with remote servers on IntelliJ
- JRebel with remote servers on NetBeans
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
- 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.
Stuck? Ask for help from firstname.lastname@example.org. We will be glad to help you get up and running. Feedback on the product? Send it to me directly via