How to develop my project remotely using IntellijIDEA? - java

I want to work remotely on my project but my project files are on the other machine in my office. I don't want to use Desktop Sharing because it uses a lot of traffic and it is slow. I want to work with my LOCAL intellij but files would serve from my computer in office. Is there any approach?

I don't think it will work, IntelliJ is built around the idea that the files are on the local drive, and if its a descent project it still will be slow.
Depending on your security settings, internet speed, etc.
You can try the following:
At work create a network drive that stores the code and on your local computer map this drive, so intelliJ will "think" that its a regular File System but in fact the files will be stored remotely. I personally believe that it will be really slow, but you can try, this is the closest answer to your question I believe.
Use X Server and stream the graphics from the intelliJ that runs on your server at work to your local PC. In such a setup the computer at work will run the intelliJ process and all the files will be stored there too. Your Local PC will show the graphics. Usually this works when you have linux at work, I do this sometimes with programs like MobaXTerm, probably there are others
Connect to you computer with remote desktop on Windows - as you say its slow but its still a solution, probably faster internet can solve the issue :)
By far the best option I can recommend: Use git's distributed nature. Assuming your project is managed by git (and if it isn't - consider using source control anyway).
Then checkout the copy of the project from... Here are two options:
Option a: ...from the remote central repository that hosts the source files of your project in your organization
Option b: ... from your computer at work, you can define in git the "remote source" (this question is not about git, I know but you can use (git remote add <your computer at work> + chose the protocol that will work for you best: ssh, git internal protocol, http, etc)
Then you'll compile the project locally (you might have to install build tools like maven, gradle, etc. on your local computer and then by using your locally installed IDE you will be able to develop fast. Now when you're ready to "submit" your code - you can push it upstream. In the option A it will be the remote repo like you probably already do at work, with option B you will push to remote branch on your computer at work.
This will be pretty fast and I used to work like this a lot of times.

Related

How to update a Github project on IntellijIdea

Everyone
I don't know if the question has already been asked, but I'm looking everywhere but I can't find it.
I am working on a project on Intellij IDEA using GitHub.
I use my desktop computer at work to develop. After finishing I make a commit on Github and it is directly on my account.
But, sometimes I would like to continue at home on my laptop, using the same project as well as modifying and committing it.
Not knowing much about Github in integration with Intellij, I know that I can take an existing project and thus download it locally on my computer. But my question is, how can I update the changed files on each computer.
Example, I work at the office, I modified the A and B file, I commit it to Github, and at home on my computer, I update the Github project on Intellij and suddenly I have the new files modified.
If you have a solution, thank you!
I think you should need to take a "deeper" look into git fundamentals, here's a quick tutorial I think would do for your case:
Learn the Basics of Git in Under 10 Minutes
Also (if u can, and have the time) I would suggest you learn to use the git CLI before the IntelliJIDEA integrated plugin, so that, in case of problems, you know where to look under the hood.
To put it in easy words the most straight-forward thing you can do is (assuming you have already set-up a repo and a branch to work on):
(on the device you just worked on)
git commit -am "comment your wip here"
git push
(on the device where you want to get the work updated)
git pull

Java: Transfer Eclipse Project from One Computer to Another?

I'm using eclipse to write my code in Java. I switch back and forth from home computer to work computer on a regular basis. I wanted to be able to sync the work done on one computer to the other computer automatically - how can it be done?
Further, I want to export all the files from my work computer to home computer as I do not have eclipse setup on my home computer yet. I know I can export the files but this will not export the all the Java jars I imported in my project. Basically I want to export everything so once I import it on my home computer I can continue from wherever I left off at work..
Thanks
The best bet, would be setting up a version control system like GIT (e.g : using github) and then you will have the chance to easily synch through the remote repository.
Regarding the libraries used by your project, to keep them organized and automatically managed you can take a look at Maven build tool.
If you don't want to go with the version control system, though it will be the best option, you can try with the FileSynch plugin and work through an FTP site or whatever shared location you want ...
Unfortunately there is no way to auto sync projects in eclipse, since there is no account/cloud system for projects so you will have to do the job manually. But I can offer you an alternative as long as all the computers are at home (connected to the same router) , there is something in windows called a home group, it enables sharing of documents and devices like printers, faxes, etc. you can make a home group and share the document folder of the user and place the eclipse workspace there then you can just use it whenever you want (your host computer needs to be always online though but you can just copy the folder to the computer and switch workspace via project > switch workspace in eclipse) , then it's the closest you can get to auto sync. I don't know about other OS but I think they should support some equivalents form of a homegroup, hope this helps.
I've been doing this using the dropbox for a while, Install dropbox app in both computers, then turn on sync :)

Running a Java application in a network location

We have a VPN network and at a central point we have kept a java application (.jar file). We are allowing users of the VPN system to use this application- What are the cons of using this solution?
As for pros -
Easy to update to a new version
Storing the files in relative location helps save files in a central location
EDIT
Is it possible to access the COM ports using JWS since our app runs inside a sandbox?
I think what you describe would work well with Java Web Start - advantages I can think of
reduced bandwidth usage (JWS will only download files if they have been updated, if not it will use a local cached copy).
possibility to use specific JVM parameters.
automatic check of the client configuration (for example, JRE version must be at least xxxx, if not download it).
There are probably more.
It's okay. For a customer project, we choosed this solution too.
Its okay, if you have a good bandwith and, on traffic producing apps, a low latency at runtime.
For a test, I build a Sql-Wrapper, to add a simulated latency to each call to our database. So we're got a feeling for the application at runtime without a real vpn connection.

Java development on files located on remote machine

I've been developing in Java using VIM or Notepad++ editors and my java code is on remote linux machine. For small changes, I just putty/vnc to the remote linux machine; for big changes, I use Notepad++ as it has FTP integrated into it. In Notepad ++, I browse the remote files, download the files I want to edit, and just saving the file saves the file back the remove linux machine.
What I'm missing with notepad++ is intellisense, autocode complete, and couple of features that will help me code faster.
I've used Eclipse before where I could code locally, and integrate with version control. However in this case, the files are located remotely and I cannot integrate with version control.
Any one else in a similar situation that has a working solution they can explain?
This is the goal of Eclipse's Target Management (TM) and Remote Systems Explorer (RSE) projects: http://www.eclipse.org/tm/ . Also see their FAQ: http://wiki.eclipse.org/TM_and_RSE_FAQ
You can try something like SSHFS, then you can remotely mount the remote files and treat them as if they were local. If you have a huge project, maybe it's not efficient enough, or if you have a crummy connection. But it's a nice way to bring remote resources local to your machine.
Addenda:
I don't know much about Windows, but I found this link.
Regarding rsync, rsync is a manual after the fact process. With SSHFS you can save or build files, "alt - tab" over to the terminal window and the files are already on the server. We've used it for PHP development. Edit files locally, save the files, tab to the browser on the server and hit refresh -- shazam.
Okay, from the mention of putty I infer you're running Windows.
Choice number one: get an operating system.
Sorry, I just had to say it.
Okay, you've really got two choices.
Choice one: use some kind of distributed configuration management system. Among the possibilities are darcs, bazaar, git, and mercurial. Subversion can access files remotely, so it can do the same thing in limited senses. In all of these cases, you can basically replicate your files to the local machine and return them using simple commands that more or less optimally transfer the files.
Choice two: use a remote file system. SSHFS, and FTP file systems are good. I'd recommend ExpanDrive, which I've used very happily for some years on Macs. It's now available for windows too.
Perhaps the easiest version of this is DropBox, which replicates files across all your machines, including Linux. It's not very real-time, but it doesn't sound like you need that. I use DropBox between home, laptop, and work (on a linux machine) and by the time I've gotten to the office, all my changes at home are replicated.

How to code in java using eclipse on internet [duplicate]

This question already has answers here:
Closed 11 years ago.
Possible Duplicate:
Is there any online IDE for Java?
Is it possible to use eclipse for java coding from internet for eg Browser based IDE or using on some server present on internet cloud?
I am using a machine on which I cannot save eclipse, and java libraries etc but can use internet.
Can anyone suggest me something.
You can try Orion it's a web based Eclipse (from the Eclipse Team)
Options:
Install Eclipse on a computer where you can and then use one of many products to access remote computers (VNC, TeamViewer, ...)
Install Eclipse on a Linux box and use Linux's ability to run programs on remote machines. But here you would have to install X server on the local (the machine you cannot save Eclipse on) machine
I bet there are other options too. :)
Remote access to your own computer at home could be a solution.
Performance depends on how fast your connection is.
Ports have to be open (default: 3389).
Personally I think the best way to do this would be to set up a build server (or continuous integration server) such as hudson or teamcity. You could then edit your code in a web editor (or simply a more lightweight editor) and just commit and push it to the build server. The build server then does all the heavy lifting and tells you if the build/passed or failed. It can even be set up to run your unit tests!
You might want to reference this question in regards to tips on how to set this up. If you use Github you get the added bonus of being able to use Ace to edit files - though I would suggest using a more robust editor and pushing your repository up manually.
If you are really keen on building on the internet you can check out compilr which sounds like what you really want (though I wouldn't recommend it - you really need you own build flow!)**.
** does not imply that the compilr service is not a good one

Categories