bhè, allora, java compila tutte le classi/interfacce che ritiene necessario compilare...

per esempio:
se tu hai la tua applicazione divisa in package, e una classe principale, che richiama classi da un package, le quali a loro volta richiamano altre classi etc etc, compilando la classe principale, ti ritrovi con tutte le classi necessarie compilate.

si possono anche usare wildcards in caso non si sia sicuri della gerarchia, ad esempio è lecito
codice:
javac *.java
Per la creazione degli archivi jar, il discorso è un po' più delicato: c'è da creare un manifest con le informazioni necessarie e quindi usare il comando jar con gli opportuni parametri... se da linea di comando lanci

codice:
jar
ti uscirà una breve schermata con le direttive principali per l'utilizzo del comando (l'ultimo esempio è proprio relativo alla creazione di un pacchetto che includa sottocartelle - package)


Ah... il punto 1... sì: src sono sempre i sorgenti, con bin invece sempre il pacchetto compilato (i "binaries" cosìdetti). Nel tuo caso, nel bin trovi due jar, un po' di cartelle (una di esempi) e un po' di file - licenze, readme etc)