Allora:
1) la variabile di ambiente serve per rendere visibile il compilatore e l'eseguibile da tutto il pc, in sostanza ti permette di scrivere
java nomefile.java e javac nomefile da qualsiasi posizione.
Quindi se scrivi: C:\>javac app.java
il file app.java DEVE risiedere in C:\>
oppure, nel tuo caso scrivi: C:\j2sdk1.4.0_01\bin javac app.java

2) Tomcat è un server java-enable, ti è necessario SOLO se devi eseguire servlet o pagine jsp. Le applicazioni le devi memorizzare nella directory web-apps. Di più non ti so aiutare, dato che l'ho appena installato anche io e ho fatto girare un po di esempi... in ogni caso, non devi memorizzare il file.java (ancora da compilare) ma un .class o un .war
Ciao!
Elisabetta