Software By JeffMain Page | About | Help | FAQ | Special pages | Log in
The Free Encyclopedia
Printable version | Disclaimers

Developing Java Software Using Open Source Tools

From Software By Jeff

Table of contents

Purpose and Conventions

The purpose of this document is to help an individual get started developing Java software using only Open Source components. This does not discuss in great detail how to write Open Source software, but rather outlines common tools and configurations used in software development.

This document is not intended to be a guide on how to write software or how to program using Java. Some discussion and examples will be provided, but they are intended to provide context, not definition.

The following outline the bits and pieces needed to get started in Java software development. All of the tools outlined herein are freely available. Where possible, platform independence has been a decision factor when considering comparable packages. When necessary, operating system considerations are noted, and differences are discussed.

Starting With Java

Since the key here is to develop software using Java, we'll start at the core, the inventors and owners of Java, Sun Microsystems.

Sun Java

Mac Java

Microsoft Java

Additional Tools

Before we dig into the development, let's get a few of the essentials set up. These tools are widely used for development, testing, and even distribution. Not all of them are required for all projects, but some form of each of them is recommended for almost all projects. Some of the tools are integrated into the development environments discussed here, but are discussed here as additional uses outside of the environment.

Source Control and Versioning

Especially when working in a team, sharing and controlling software is important. Ensuring that developers don't interrupt each other, and that everyone has the current changes is important.

This section discusses preparing and accessing a central repository for maintaining versioned software.

CVS

SVN

Build Tools

Outside of an integrated environment, building Java projects is often cumbersome, especially when done by hand. The good folks at The Apache Software Foundation (http://apache.org) provide the defacto standard in Java build tools. In fact, in our favorite development environments, Ant is integrated and used behind the scenes for building the projects.

Ant

Automated Testing

When writing software, it's important to begin on the enlightened path of writing software well. A common approach is to automatically test software as you write it. These tools will help make that possible.

JUnit

Database

Invariably, larger projects need some way to persist data. Your application may be targeted for a larger system, such as Oracle, but these alternatives and tools offer plenty in the way of performance and easy-to-use configurations for development. Often, the same work can be done using these Open Source alternatives as can be done using the big name-brand solutions.

MySQL

Hibernate

Teamwork

Whether working alone or with a team, the following tools offer mechanisms for planning work, tracking changes, and handling defects. Not as necessary for single-developer environments, they offer plenty of assistance in keeping multiple developers on track, or handling multiple projects. These tools offer open access so end users and clients can use them to report or track bugs.

Bugzilla

MediaWiki

E-Groupware

Integrated Development Environments

While Java code can be created in any text-only editor, and compiled in a command line or via build tools like Ant, the easiest way to get started and work on larger projects is by using an Integrated Development Environment (IDE). The following is a list of common Open Source IDEs, which is by no means a comprehensive list.

The keys to making this list include cross-platform accessibility, and unencumbered licensing.

Eclipse

NetBeans

Setting up the System

The following sections will outline a step-by-step process for getting your system set up for software development in Java using Open Source tools. The discussions will hit the differences between operating systems where necessary, and breeze over them where they are intuitive or where the differences are not noticable.

Getting it done

Some best practices will be discussed.


Driving Development with Tests

Repositories

When you get going in the Open Source world, the best thing to discover is that you're not alone. You're probably not the first one to encounter the problem that you're workign no, nor are you likely the only one to come to a solution. The following resources offer a plethora of tools and examples, if not entire solutions, that you can use, study, or incorporate into your project. The whole selling point of object oriented software is to reuse components. Here are some of the places the components get shared.

Apache (http://apache.org)

Freshmeat (http://freshmeat.net)

Sourceforge (http://sf.net)

Retrieved from "http://www.swbyjeff.com/index.php/Developing_Java_Software_Using_Open_Source_Tools"

This page has been accessed 7894 times. This page was last modified 19:32, 21 Jan 2005.


Find
Browse
Main Page
Community portal
Current events
Recent changes
Random page
Help
Edit
Edit this page
Editing help
This page
Discuss this page
Post a comment
Printable version
Context
Page history
What links here
Related changes
My pages
Create an account or log in
Special pages
New pages
Image list
Statistics
Bug reports
More...