This may be of interest to other *nix Java developers.. http://newgate.socialchange.net.au/~jeff/jpe/
Here is a summary, from the docs: "[The JPE is] a simple system for working on multiple Java projects under GNU/Linux, in particular for managing project classpaths. .. One of the most painful aspects of Java programming, particularly for new programmers, is dealing with classpaths. Every project requires a set of jars, which must be listed in the $CLASSPATH variable before the project compiles or runs. Of course, every project requires a different set of jars. Since there is only one classpath, fixing it is a frequent chore. .. A solution: nested shell-based environments The idea (and I'm sure it's pretty old..) is to start a new shell, inside your current one, when you start working on a project. The Subshell" can be customized in project-specific ways. Specifically, the $CLASSPATH variable is automatically populated with jars from certain directories (eg lib/), and directories containing classes (eg src/java/). .. Here's what happens when one enters the project subshell: [EMAIL PROTECTED]:~$ cd myproj/ [EMAIL PROTECTED]:~/myproj$ proj.sh ------------------------------------------------------------- Java Project Environment: version 1.24, 2001/06/28 12:46:49 ------------------------------------------------------------- Proj name: My wonderful new project Proj alias: myproj Proj author: Jeff Turner Proj description: This fictitious project exists solely to illustrate the JPE ------------------------------------------------------------- Adding directories to classpath Adding /home/jeff/myproj/src Adding /home/jeff/myproj/src/java Loading jars from /home/jeff/myproj/lib Adding /home/jeff/myproj/lib/jaxp.jar Adding /home/jeff/myproj/lib/xalan.jar Adding /home/jeff/myproj/lib/xerces.jar Setting cdc alias to src/java/org/myco/myproj [EMAIL PROTECTED] myproj ~]$ .. .. When you start a project subshell: * The $HOME variable is reset to point to the project root. * The prompt ($PS1) is customized to include the project name. * jars from various predefined and user-specified directories are added to the classpath. * predefined and user-specified directories are added to the classpath (if present). * Project aliases are set up. Hope someone finds it useful. I tend to jump between a lot of projects, and it's has saved me quite a lot of time. --Jeff