Developing General Java Applications