Luckily there are a number of similarities between Java and C#, certainly on the non-GUI server side of Java that helped me get up to speed with concepts and techniques quickly.
I was working on a multi-threaded Java application that was being built to listen to Websphere MQ messages and update a Sybase database based on the details sent. When a message was received a thread was taken from the thread pool if a thread was available and would take the message details, populate the relevant fields and then proceed to update the database. The application was not completed so I am unsure as to how successful the project would have run under production conditions but during the testing it seemed to work well. The process would also listen for "ad-hoc" messages to know when to shutdown when the feeding system shut but also published a "heartbeat" message to the database to indicate it was still running. The process was started and monitored via Autosys.
I was also heavily involved in re-architecting a batch system that used an in-house built scheduler using an XML file to know when to process each item. This was not to a standard, had no monitoring or escalation and the process had to be moved over to Autosys. How incoming and outgoing files were handled, as well as dependencies all had to be stripped out, altered to deal with how Autosys worked as well as much more robust method of dealing with parameter options had to be developed. I was in sole charge of this work.
Another set of projects involved building processes for new incoming feeds of data as well as building extracts for feeds. These processes had a basic Java template to use although I tried to standardise new feeds as there were three different methods feeds were loaded.
I used Eclipse for developing with Java along with ANT to build the projects for deployment to the Linux server.