views:

1779

answers:

26

I am looking to start fiddling around with Java development in my free time (professionally a .NET developer) and I am curious as to what the community feels is their preferred development environment.

Items that could be listed:

  • IDE
  • Plugins
  • Tools
  • Utilities
  • Source/Version Control
  • Libraries
  • Books
  • Blogs
  • Anything else you feel makes your time developing in Java easier/more efficient/more enjoyable

Although it would be nice to potentially tailor any lists towards hobby development (no expensive enterprise tools), I don't think anything should necessarily be left off the list if you feel it is important to your development.

+8  A: 
  • gvim
  • ctags
  • make
  • find/xargs/grep
  • A web browser with a tab open on the API docs and another tab open to the StackOverflow
  • An iPod filled with tunes to drown out the distractions around me.

Bonus for working at home:

  • A dog in my lap
Paul Tomblin
"A dog in my lap" - Aha, I see why I have been having so much difficulty now. I don't have a dog, I have a kitten that swings from my headphones cord and walks on the keyboard.
too much php
Well, I used to do it with a cockatiel on my arm, but the bird chewed through a mouse cable and shorted out my PS/2 mouse port. http://xcski.com/~vjrnts/piper/bfast4.gif
Paul Tomblin
+2  A: 

This is what I use:

  • IDE: NetBeans ( although I sometimes use Eclipse for some stuff)
  • VCS: Mercurial (NetBeans can work with Mercurial out of the box)
  • Java Help: http://forums.sun.com/index.jspa and stackoverflow.com
  • Java platform : OpenJDK6
  • API reference : http://java.sun.com/javase/6/docs/api/
  • Book: Head first Java (to learn java, not very good for reference)
  • OS: Ubuntu Linux
climatewarrior
Why would you use OpenJDK instead of Sun's?
cletus
It's fully FOSS and I can easily install it. Also I don't see any advantages to Sun's version other that increased stability but since I'm not running any mission critical software and OpenJDK has been really stable for me anyway so I stick with OpenJDK.
climatewarrior
OpenJDK has also been stable for me. Why run Sun's instead of OpenJDK? :-)
+7  A: 
  • MyEclipse + ClearCase Plugin
  • ClearCase (any source control is fine; I'd use SVN for a hobby project)
  • Firefox + many shortcuts to JavaDoc for JDK and libraries
  • Ant for building
  • log4J for logging
  • CruiseControl for Continuous Integration
  • cygwin (since my development is on Windows) so I have access to find and grep -R and other UNIX tools
  • WinXP Pro (if I were doing hobby development it would be under Linux)
  • findbugs for static analysis
  • checkstyle for style and code sanity checking
  • JUnit for unit testing
  • iBatis (and old version) for database access
  • MySQL for a database
Eddie
+2  A: 
  • IDE - Netbeans (also use the Profiler in Netbeans)
  • Building - Ant 1.7
  • Lint - PMD, Checkstyle, Findbugs
  • Unit testing - JUnit 4.x
  • Code Coverage - cobertura
  • Version Control - subversion and svnkit for doing some svn stuff in ant
  • Build server - Bamboo
  • Bug tracking - JIRA
  • XML Parsing - XML Beans
  • Database integration - JPA (through NetBeans 'cause I am lazy :-)
  • Books - Effective Java + anything else on the particular topic I am working on (right now the JVM spec)
TofuBeer
+2  A: 
  • Netbeans
  • Ant
  • subversion
  • Junit 4
  • Java Api docs
  • Stack Overflow of course
DMMcKinnon
+8  A: 

IDE: Eclipse Ganymede (Ant & JUnit built in)
JDK: The latest v6 from Sun
Platform: SQL Server, Apache Tomcat, Hudson
Plugins: Sysdeo (Tomcat), Genady.net (RMI), Jupiter (Code Review), Mat (memory issue tracking)
Libraries: JIDE & Synthetica (GUI stuff), jTDS (SQL Server) & a million others.
Source: CVS
Books & Blogs: Whatever I can lay my hands on. Information junkie, me

banjollity
+2  A: 
  • MyEclipse - lots of plugins, the most important of them are Spring IDE, FileSync and Subversive.
  • Maven for building
  • Archiva as proxy for Maven artifacts, and also to deploy my own artifacts
  • Hudson for continous integration
  • Subversion for source control
  • MediaWiki for archiving all sorts of knowledge
  • Libraries I use in every project: Apache Commons Utilities, Google Collections and JUnit
  • Spring, Hibernate and MySQL for many projects
  • MySQL GUI Tools
  • JBoss for large-scale testing, Jetty for small jobs
  • Books: Effective Java, Spring in Action
Nils-Petter Nilsen
+2  A: 

MacBook (environment) Eclipse (IDE) Junit 4 (test driven) Ant (continuous build Subversion (version management) Tomcat (for J2EE application tests) 3rd party libraries as needed for project

Arne Burmeister
+1  A: 

My setup is simple:

  • NetBeans
  • Subversion

As for books, Joshua Bloch's Effective Java is a must, once you've got over the basics.

Joonas Pulakka
+17  A: 

For all projects:

As needed:

Books: Effective Java and perhaps Java Concurrency in Practice.

Libraries vary from project to project. I try to avoid introducing dependencies unless absolutely required, so I don't have any that I use all the time.

Dan Dyer
+2  A: 

My list:

  • IDE: Eclipse Ganymede
  • Plugins: SQLExplorer, SUBCLIPSE
  • Tools: jconsole
  • Utilities: Mac OS's command line
  • Source/Version Control: svn
  • Libraries: as few as possible
  • Books: www.google.com, Thinking in Java
  • Blogs: none
  • Anything else: stay away from Java EE as far as possible (got to do it sometimes because of customer's requirements though, in which case I use JBoss)
Pablo Santa Cruz
+5  A: 

Here's mine:

  1. IDE: IntelliJ 8.1. Best IDE there is. Bought a personal license; it's worth it.
  2. Spring 2.5
  3. Subversion
  4. JUnit or TestNG
  5. Tomcat or WebLogic for Java EE deployment
  6. MySQL or PostgreSQL for relational database
duffymo
+5  A: 

If you've used ReSharper in Visual Studio, you should try the original: IntelliJ IDEA. You can use the EAP for free. You can search for and install plugins directly from the IDE.

Libraries you should look at are Spring and Hibernate. JUnit 4 for testing (it uses annotations for marking tests, just like NUnit uses attributes).

If you make web apps, you'll need a servlet container. Take your pick from Tomcat, Jetty, Glassfish or Resin. All open source and freely available.

Subversion is the de facto standard for version control, but a lot of open source projects now use distributed tools like git or mercurial.

Maven is powerful, but has crap docs and can be difficult to get started with. Ant is probably easier to start with and is not too different from NAnt or MSBuild.

I also recommend reading Effective Java (2nd ed) by Josh Bloch for learning some of the standard idioms. Java Puzzlers by Bloch and Gafter gives you some insight into Java's pitfalls. Spring in Action is a good Spring book.

Kjetil Ødegaard
+6  A: 
  • IDE: IntelliJ 8.1. Having used Netbeans and Eclipse I still think IntelliJ has the best code editor (in terms of code completion and so on) and refactoring;
  • Plug-ins: Very few actually. GenerateToString I guess. Not much that IntelliJ doesn't do;
  • Source Control: Subversion;
  • Libraries: Spring 2.5. it's hard to imagine any project without Spring. ibatis is another favourite. If I must use JPA then EclipseLink;
  • Application Server: Glassfish V2 or V3 Prelude;
  • Database: Oracle XE or Mysql;
  • Operating System: typically Windows XP but also Ubuntu. I'm strongly considering Mac OSX for my next machine;
  • Computer: minimum spec is dual core, 4 gigs of RAM and a 22" widescreen monitor;
  • Build: I still use Ant (over Maven) for simplicity; and
  • Books, blogs and websites can all be summaried as: Google. I have no specific sites. It's whatever Google can find me when I'm in a bind. For example it's quicker to google "java.util.TreeMap" and click the top link than it is to open the JDK documentation and navigate to it.
cletus
Maybe you should try eclipse... you dont need to google to get documentation for TreeMap... the source and documentation can immediately be visible on your second monitor (or current if your forced for space)
@guyumu: Also in IntelliJ IDEA you can quickly check JDK Javadocs or jump to source.
Jonik
+6  A: 
  • Eclipse
  • AspectJ
  • svn + subclipse
  • JDepend for package dependency management or structure 101
  • Junit
  • emma + eclipseplugin for code coverage
  • ant + ivy
  • hibernate most of the time
  • oracle most of the time, on private projects oracle XE
  • derby as a test database
  • log4j for logging
  • abbot for swing gui testing
  • easymock

the race is still open for web related frameworks and a replacement for ant.

Jens Schauder
+4  A: 

I do a lot of development on both Windows and Linux.

For documentation, I have most of my HTML based API docs and manuals in a little documentation framework I whipped up that has a frame across the top with context dependant links. See here for the top page, and here for the Java API as an example. All documentation is on my local drive so very fast to access, and not stranded if there is a slow Internet connection.

Evan
+2  A: 
  • IntelliJ IDEA
  • Ant 1.7 for building
  • JDK 1.5
  • JUnit for unit tests
  • Subversion for version control
  • Hudson for automated builds
  • Proprietary scripts for other tasks including making live builds and uploading
talonx
+1  A: 

I'm amazed by the number of people that are still using Ant. It's a good tool but Maven is much cooler once you get the principles. I use it all the time and I feel a lot more productive with it. Here is my list:

  • IDE : Eclipse 3.4
  • Plugins : a few (checkstyle, groovy, derby, sometimes spring ide)
  • Tools : Jetty (I love mvn jetty:run), Glassfish, Java DB (aka Derby)
  • Utilities : Maven 2
  • Source/Version Control : SVN and then maven release plugin
  • Libraries : Spring, JPA, Hibernate, JAX-WS RI, Struts2, Wicket, Grails
  • Books : Effective Java, Professional Java Development with the Spring Framework
  • Blog : Nothing specific
  • Anything else you feel makes your time developing in Java easier/more efficient/more enjoyable : Ubuntu ?

And some more:

  • Testing Frameworks : Junit4 or TestNG and all xUnit frameworks
  • Mocking Frameworks : Mockito or EasyMock
  • Quality tools : Checkstyle, PMD, Cobertura
  • Build : Maven2 (did I mention it ?)
  • Continuous Integration : Hudson
  • Quality Dashboard : Sonar (take a look if you don't know Sonar)
Pascal Thivent
>>I'm amazed by the number of people that are still using Ant -Really? Ant is a much simpler tool when I want to build my project or a subset of it on my dev machine.
talonx
Pascal Thivent
Yes. And without the bloat.
talonx
There's room for both, children... but the bloat comment is surefire FUD. Maven has it's issues, I'll concede,
Chris Kaminski
+1  A: 

ide: netbeans

quick and dirty editor: notepad++

tomcat

mysql / ms ssql

source control: subversion with tortoise

tickets: redmine

opensas
+1  A: 

You certainly need an IDE and Eclipse is darling of many java developers. You certainly need JDK (1.4 or 1.5 depends on your needs). You need a build tool Ant / Maven are at the top of developers' minds. Then you need a Web / Application server - Tomcat, Glassfish, JBOSS etc. A database of your choice.

Well with these in place you can start your development. There are many plug-ins like Checkstyle, Findbugs, PMD etc to aid in better coding. You may use them at your discretion.

Eager Learner
+1  A: 
  • IDE: IntelliJ IDEA
  • Plugins: Scala support
  • Build Tool: Maven
  • Version Control: Git
  • Unit testing: JDave, Scala Specs, Mockito
  • Utilities: VisualVM
  • OS: mostly WinXP
  • Hardware: Q6600 @ 3GHz, 4GB RAM, SSD, 24" screen
Esko Luontola
A: 
  • IDE: Netbeans
  • Plug-ins: Very few actually
  • Source Control: Mercurial
  • Libraries: jersey, restlet, jodatime, mozilla rhino, antlr, etc; spring or guice as DI framework;
  • Unit testing: JUnit 4.x, Mojito (mocking framework)
  • Application Server: Glassfish V2 or V3 Prelude
  • Database: MySQL, Oracle XE; HSQLDB and/or JavaDB/Derby for unit testing
  • Operating System: Windows 7, occasionally also Windows XP or Ubuntu;
  • Computer: dual core, 4 gigs of RAM and a 22" widescreen monitor;
  • Build: Maven and occasionally Ant and make; I use also Hudson
  • Books: many books from manning.com (Spring in Action, EJB3 in Actiom. Ant in Action, iText in Action), Effective Java, etc;
dfa
A: 

Right now:

  • Windows XP
  • IntelliJ 8.1 for development and UltraEdit32 for text editing (I have my own license)
  • TOAD for Oracle development and SQL Server Management Studio Express for SQL development
  • Maven
  • Subversion
  • JUnit for logging
  • Tomcat and Jetty for WebApplications
  • The standard Windows Command Prompt, a lot - I kind of feel comfortable with it now
  • Trying to adopt Wicket as a Web framework
  • Adopted Google Collections as the standard collection library in all projects that I work on (I really like the Lists, Maps and Sets classes, it's a small thing but it helps not having to specify the list element type twice)
  • Chrome (it's faster than Firefox and IE specially at my crappy notebook at home)
  • Windows Media Player (Winamp doesn't accept too well my keyboard commands)
Ravi Wallau
A: 
  • Ubuntu @work, Mac @home
  • Terminator on Ubuntu
  • Eclipse JEE edition with viPlugin, m2Eclipse and Subclipse
  • Dbvisualiser
  • Mysql, Oracle, Sybase, Postgresql whatever is in the house
  • Jboss as application server
  • Maven, Ant, Hudson, Cruise Control
  • Subversion, CVS in the past
  • JUnit for testing
  • JBoss Seam framework for Web applications with persistence layer
  • APIs outside JDK : Jodatime, Spring and Log4J
  • Firefox with Firebug and Webdeveloper plugins
  • Books: you can't go wrong with O'reilly books, lately I have been reading lots of "in Action" books of Manning. For instance, Spring in Action. They are not very good as reference, but perfect as introduction. Certification books are thorough and the best for reference and you can of course get a certification with them.
  • Blogs and websites : javaranch, Sun java, IBM developerworks, Maven the definitive blog and Dustin Software Development Blog and many more. For blog reading I use Google Reader.
Navi
A: 
  1. Java
  2. Eclipse as IDE
  3. Some plugins
  4. Firefox browser, recently shifted to Chrome.
fastcodejava
A: 

Have been both professional .NET and Java developer.

IDE: Intellij [Used to use Resharper in VS for .NET] - Exceptionally good

Utilities: Bash, Beyond Compare, Textpad [In windows only], MIT Scheme [for testing something fast, as calculator etc.]

Source/Version Control: Subversion

Database: MySQL

OS: Mac OS X, RHEL [Source folders NFS mounted onto Mac. Mac is mainly used as UI Frontend, with storage, compilation, source control etc. in RHEL!]

Books: Art of computer programming. I hardly read any language specific books nowadays. Thinking in Java was a good book.

Fakrudeen