Quando um nó definido pelo usuário em Java é empacotado como um arquivo PAR, esse nó é carregado em um carregador de classe separado. O carregador de classe carrega qualquer classe empacotada dentro do PAR implementado. As classes colocadas no JAR substituem todas as classes que se encontram no diretório de classes compartilhado ou na variável de ambiente CLASSPATH. Se o PAR implementado contiver mais de um tipo de nó, os nós compartilharão o mesmo carregador de classe. Conseqüentemente, um conjunto de nós definidos pelo usuários que compartilha dados estáticos, deve ser empacotado em um único arquivo PAR. Os nós definidos pelos usuários Java empacotados como arquivos JAR simples são carregados no mesmo carregador de classe.As classes e o local a partir dos quais eles são carregados são gravados no rastreio do usuário, portanto, você pode utilizar estas informações para verificar se as classes corretas estão sendo carregadas.
O intermediário utiliza a seguinte árvore do carregador de classe:
Pacote de Nós Definidos pelos Usuários em um PAR
Pacote de Nós Definidos pelos Usuários em um JAR
O mecanismo de substituição de padrões aprovados permite que os pacotes padrão a seguir sejam substituídos no JRE:
Para substituir esses pacotes no intermediário, coloque os arquivos JAR para os padrões API no diretório /lib do PAR.
Thread.currentThread.setContextClassLoader(this.getClass().getClassLoader());