Seja bem vindo ao Fórum do JavaFree.org
Aqui você irá encontrar respostas para TUDO o que você precisa sobre java.
Deseja participar? Crie sua conta ou efetue seu login
Tentei executar tal classe individualmente (NomeDaClasse.class) mas não consegui, obtive um erro que informava que as outras classes não foram encontradas!
Bom, minha dúvida é a seguinte:
1ª: Porque as vezes compilo o código-fonte e a classe sai como, por exemplo "NomeDaClasse$1.class";
2ª: Porque tenho que colocar essas classes com cifrões no mesmo diretório da classe original?;
a VM do java precisa de um arquivo .class para cada classe que existe no programa.
Incluindo todas as classes internas e classes anônimas
portanto, quando você cria uma classe interna, por exemplo
O compilador vai gerar dois arquivos
Classe.class e Classe$Interna.class
o cifrão serve pra dizer que a classe à direita do cifrão, é uma classe interna à esquerda do cifrão. Nesse caso
Interna é uma classe interna de Classe.
quando se cria uma classe interna anônima porém, (mais comum em eventos swing)
Fazendo assim, você criou uma classe anônima para o event action performed do botão, A VM tambem precisa de um .class pra ela
Sendo assim, o compilador gera os arquivos
Classe.class e Classe$1.class
para cada outra classe anonima, ele vai criar Classe$2.class, Classe$3.class, Classe$4.class.... etc
O netbeans cria classes anônimas para cada evento que você adcionar ao projeto, por isso o compilador acaba criando várias classes nesse formato
Elas precisam estar todas no mesmo diretório, ou a VM não conseguirá controlar os eventos, porque as classes anônimas estão faltando, gerando um ClassNotFoundException _________________Sekkuar ~ Ex-Catador Executivo do Javafree - (Não mais) Catando os tópico tudo.
"The mod javafree deserves, but not the one it needs right now."
Orion_ljPosts:36
Fala ae galerinha do java....
Eu estava num "mini projeto" no NetBeans, tudo ocorreu bem. Quando fui na pasta NetBeansProjects tava la, a classe principal em várias partes... tipo:
"NomeDaClasse.class";
"NomeDaClasse$1.class";
"NomeDaClasse$2.class";
"NomeDaClasse$3.class";
Tentei executar tal classe individualmente (NomeDaClasse.class) mas não consegui, obtive um erro que informava que as outras classes não foram encontradas!
Bom, minha dúvida é a seguinte:
1ª: Porque as vezes compilo o código-fonte e a classe sai como, por exemplo "NomeDaClasse$1.class";
2ª: Porque tenho que colocar essas classes com cifrões no mesmo diretório da classe original?;
sekkuarPosts:5998
a VM do java precisa de um arquivo .class para cada classe que existe no programa.
Incluindo todas as classes internas e classes anônimas
portanto, quando você cria uma classe interna, por exemplo
O compilador vai gerar dois arquivos
Classe.class e Classe$Interna.class
o cifrão serve pra dizer que a classe à direita do cifrão, é uma classe interna à esquerda do cifrão. Nesse caso
Interna é uma classe interna de Classe.
quando se cria uma classe interna anônima porém, (mais comum em eventos swing)
Fazendo assim, você criou uma classe anônima para o event action performed do botão, A VM tambem precisa de um .class pra ela
Sendo assim, o compilador gera os arquivos
Classe.class e Classe$1.class
para cada outra classe anonima, ele vai criar Classe$2.class, Classe$3.class, Classe$4.class.... etc
O netbeans cria classes anônimas para cada evento que você adcionar ao projeto, por isso o compilador acaba criando várias classes nesse formato
Elas precisam estar todas no mesmo diretório, ou a VM não conseguirá controlar os eventos, porque as classes anônimas estão faltando, gerando um ClassNotFoundException
_________________Sekkuar ~ Ex-Catador Executivo do Javafree - (Não mais) Catando os tópico tudo.
"The mod javafree deserves, but not the one it needs right now."