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?
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?
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.
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.