Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Run IntelliJ in client-server mode

Currently, IntelliJ IDEA does not have a "Remote Development" feature.

Lets say I have two machines: Machine 1 (very good configuration ex 64GB ram with Intel Xeon processors) and Machine 2 (Macbook Pro with 8GB RAM).

Lets say I have IntelliJ IDEA installed on both machines. The problem now is, there is no client-server mode for the IDE. The closes thing I have is to use OpenNX.

What I'm looking for is a plugin/feature that enable remote development. What I mean by this is: On my macbook, I should be able to add Machine 1 as a "server". And once that is done, the IntelliJ IDEA on my macbook will only act as a client for the IntelliJ IDEA on my Linux box. Basically it would be replicating the UI. However, the catch here is that, it shouldn't do so by sending images (the way any VNC or NX client would). Instead, since it is for a specific application most of the data can be managed through text data only.

Since OpenNX uses images, even with compression it wouldn't match up the performance of text only transmission.

Basically I'm looking for IDEA on one machine to be a client (Remote GUI) for IDEA on another machine.

UPDATE

The eventual answer is: This is not possible (As of now). While I was aware of other options, that wasn't what I really wanted. However, it appears there is no such option.

The main reason why I wanted the option was because my desktop (remote Linux box) has a much higher configuration (Intel Xeon 2GHz processor and 64GB RAM) and my client was an Macbook Pro with Intel Core i7 and 8GB RAM. (By no means any less). However, due to the size of my codebase etc, the indexing of the code etc by the IDE slows it down.

Both client and server are perfectly capable of running an IDE by themselves. However, due the size of the code base it would be better to have the build of the work being done by the IDE on the server and the client being just the front end to it.

The other solutions like VNC, Nomachine - OpenNx all use image compression. And when your client is a Mac, you run into keyboard mapping problems. A client-server mode in the IDE itself would use text compression instead and would be much faster. It would also solve the keyboard mapping problems.

While to me, it sounds like a good idea, it probably doesn't get used by enough people for it to be a feature of the IDE.

Note: I would also be open to considering Eclipse as the IDE if this feature is available. Any answers will always be apreciated.

like image 729
Arjun Rao Avatar asked Feb 14 '14 19:02

Arjun Rao


People also ask

How do I run a client server Program in IntelliJ?

You can configure the application server directly from the Run/Debug Configurations dialog. To do this, select the application server run configuration and click Configure next to the Application server selector. To run the configuration, press Alt+Shift+F10 and select the created application server configuration.

Can IntelliJ connect to remote host?

On the IntelliJ IDEA welcome screen, select Remote Development. In the Run the IDE Remotely section, click SSH Connection. If you have the IDE already running on the remote server and you have a connection link, you can use the Connect to Remote Host With a Link section.

How do I get an IntelliJ server?

Press Ctrl+Alt+S to open the IDE settings and select Build, Execution, Deployment | Application Servers. and select the application server. In the dialog that opens, specify the location of the installation directory and click OK.

Where is VM options in IntelliJ?

From the main menu, select Help | Edit Custom VM Options. If you do not have any project open, on the Welcome screen, click Configure and then Edit Custom VM Options. If you cannot start IntelliJ IDEA, manually copy the default file with JVM options to the IntelliJ IDEA configuration directory.


1 Answers

You'd probably be better off switching instead to a remote code repository that you keep in sync. While the concept of doing this in an IDE plugin is interesting, it has some fundamental flaws. What happens when the machines can't talk to each other? Are you unable to work at that point, or can you work offline. If you work offline on both machines, how do you reconcile changes...

I suggest looking into using "git". You can set up a remote repository very easily. If you have ssh access to either machine or some other shared machine, you can create a remote repository on that machine, and your "client" machines can easily push files/changes around.

There are plenty of other code repository options, but I've found git the easiest to set up.

like image 63
Daniel Avatar answered Sep 19 '22 13:09

Daniel