Gravy is a simple Dependency Injection container for Java. It is particularly targeted at thick client and command line applications.
It does a fraction of what Pico Container and Google Guice do, but it addresses one serious omission from those two containers.
Guice and Pico are an excellent choice for server-side applications using technologies like servlets. But neither can cope with multiple instances of similar graphs of objects. For example, say an application has a JFrame which is injected with models, views, controllers etc. Pico and Guice can do that. But what if you want to create another instance of the frame with its own graph of models, views and controllers? That's where Gravy comes in. You can create multiple instances of a Gravy Context with the same interface/implementation mappings and Gravy will create a new graph of objects for the container.
Gravy was created as a proof-of-concept. After struggling to do what I wanted with Pico and Guice, I asked myself "How hard can it be?" Gravy showed me that it isn't very hard at all. Of course, to make it do everything that Pico and Guice can do would be difficult and maybe too must work for one person in their spare time. Gravy does what I need and will do for now. If Pico or Guice do what you need, I recommend either of those. If you want the one thing Gravy can do, give it a go.
Gravy is free software, licensed under the GPL.