Quando crio um jar, dentro dele são feitas cópias das minhas classes com um $ no fim do nome.
Por exemplo, se tem a classe MinhaClasse.class, existem também MinhaClasse$1.class, MinhaClasse$2.class… a assim por diante.
Como me é interessante gerar um jar pequeno, há como remover essas cópias? Ou antes disso, essas cópias são necessárias?
[quote=FelipeBValio]Quando crio um jar, dentro dele são feitas cópias das minhas classes com um $ no fim do nome.
Por exemplo, se tem a classe MinhaClasse.class, existem também MinhaClasse$1.class, MinhaClasse$2.class… a assim por diante.
Como me é interessante gerar um jar pequeno, há como remover essas cópias? Ou antes disso, essas cópias são necessárias?[/quote]
Essas classes não são cópias. As classes internas e internas anônimas também precisam ser compiladas 
A quantidade de .class com o prefixo de uma determinada classe é igual a quantidade de classes internas (anônima ou não) da sua classe principal.
[]´s
Exemplo:
Veja o código:
[code]public class Teste {
public Teste() {
Runnable r = new Runnable() {
public void run() {
}
};
}
private class Teste2 {
}
}[/code]
Depois de compilado var gerar três .class:
Teste.class (o class da classe Teste)
Teste$1.class (o class da classe interna anônima implementada no construtor da classe Teste)
Teste$Teste2.class (o class da classe interna Teste2, declarada dentro de Teste).
Se tivessem mais classes internas anônimas a numeração seria seguida.
Sua classe provavelmente é uma classe de interface gráfica e normalmente as IDEs geram classes internas anônimas para tratar eventos.
[]´s