Arquivos estranhos dentro do jar

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 :wink:
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