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 :)
Related
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.
I have created my first app using Eclipse and now wish to implement NFC into it. However I don't want to add it yet to my first app in case I encounter problems. I wish to copy and paste my app into Eclipse a second time so I can have 2 versions in my workspace (App1 & App1NFC).
Is copying and pasting and then renaming the NFC version a safe way to do this. I'm worried the Java source files may conflict each other. Will renaming the project name sufficient enough or will I have to change other things in the manifest/res folders etc?
Thanks
You might want to look into using a version control system such as git. You could create a branch with the NFC code and then be able to switch back and forth pretty easily.
If you want two apps to run on the same device then the package names should not be identical to each other so that they won't conflict with each other.or else installation of the existing app will be replaced by installing app.
i.e
If app1 has the package name as com.mycompanyname.myappname
then make sure the other app doesn't have the same package you could rename it into something like com.mycompanyname.myappname1
You can just copy the entire folder and rename it to whatever you like.Then you can open it as another project
Btw
Why don't you use Android Studio?
I have a laptop and a desktop , I use my laptop at office for doing my Java projects, I also want to continue doing my work at home in desktop. So I need to synchronize all my work done in laptop to my desktop, is there any option that can keep my projects synchronized so that I can start my work from where I have stopped.
Thank you in advance
Git + Github (if your projects are not secretive, otherwise pinpoint each computer as the remote repositry one of another) + Egit from Eclipse.
I use four machines to work with my code and this have been by far the most convinient method of doing things for me, especially if you need someone from the outside to view and edit your coude later on.
I'm trying to make a Java game updater launcher for my game. Similar to how minecraft works. However, minecraft has only a few .jar's to download wheras I would need to redownload all of my game assets. Is there any easy way for Java to check a file for which operations need to be taken? One idea I had was using .7z files since those can be compressed really small. That wouldn't work though because I can't seem to get Java to hook onto 7zip operations. Another idea I had was if it determined if an update was needed it would read a file with a set of commands like this:
remove assets/models/malecharacter.obj
add assets/models/alien.obj
...etc
But I'm not sure this is very efficient and I am also not able to find a lot of help with managing files. Any help and ideas would be appreciated.
I made a Game Launcher in Java recently, I still have a few problems to solve like how to update the launcher itself.
Anyhow, for the game updates/versions I just have a "versions" folder with a folder for each downloaded version, it might not be the prettiest of solutions but it works for multiple versions and it's easy to make.
My launcher checks a URL from my dedicated server which has all available versions, which I call it versionlist, then since the versions folder on the server obeys a path order I can call any versions which are in the versionlist. I download the selected version and extract it to a separate version folder on the user's pc.
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.