Você não precisa compilar separado, veja o exemplo, na minha máquina eu tenho a seguinte árvore de diretório
C:\Temp\MinhaApp>tree
Listagem de caminhos de pasta
O número de série do volume é D6B5-6EDA
C:.
├───classes
│ └───com
│ └───fox
│ └───model
└───src
└───com
└───fox
└───model
E nos diretórios eu tenho os seguintes arquivos
C:\Temp\MinhaApp\classes
C:\Temp\MinhaApp\src
C:\Temp\MinhaApp\classes\com
C:\Temp\MinhaApp\classes\com\fox
C:\Temp\MinhaApp\classes\com\fox\model
C:\Temp\MinhaApp\src\com
C:\Temp\MinhaApp\src\com\fox
C:\Temp\MinhaApp\src\com\fox\B.java
C:\Temp\MinhaApp\src\com\fox\model
C:\Temp\MinhaApp\src\com\fox\model\A.java
o conteúdo dos arquivos A e B.java respectivamente
[code]
package com.fox.model;
public class A {
private String nome = "thiago";
public String getNome() {
return nome;
}
}[/code]
[code]
package com.fox;
import com.fox.model.A;
class B {
public static void main(String[] b) {
A a = new A();
System.out.println(a.getNome());
}
}[/code]
Comando para compilar os dois
C:\Temp\MinhaApp\src>javac -d ..\classes com\fox\model\A.java com\fox\B.java
Repare que eu estou no diretório src que não faz parte da árvore dos pacotes
Bom acho que era isso, achei boa a tua iniciativa, bons estudos
Ah, aproveitando, para rodar é só fazer o seguinte
C:\Temp\MinhaApp\src>cd ..
C:\Temp\MinhaApp>cd classes
C:\Temp\MinhaApp\classes>java com.fox.B
Lembre-se que você vai ter que adaptar a estrutura de diretórios da sua máquina, se sentires dificuldades, copie a estrutura de diretórios e vá fazendo testes, até você dominar direitinho!