Ae pessoal,
fiz um programa que tinha uma chamada repaint, e era meio pesado mesmo… mas executando o .class rodava tranquilo! daí eu gerei o .jar e toda vez que chegava na parte do repaint ele dava pau, num era exceção nem falta de memória, o prog continua rodando mas a tela não é atualizada!
e aí? isso significa diferença de performance entre .jar e .class?
Nao deveria ter absolutamente nenhuma diferenca - pra entender o pq disso, eh soh ver como os ClassLoaders funcionam - mas… agora eu fiquei curioso, como vc mediu isso e quais foram os erros que aconteceram?
O progama era um joguinho e quando acabam os inimigos passa pra outra fase mas o .jar não renderizava a tela da nova fase, o jogo continua rodando (ouve-se o som e tudo mais) mas a tela fica estática… minimizando e maximizando volta a renderizar! (nada disso ocorre quando executo o .class que roda redondinho!)
Voce tem certeza absoluta dos teus argumentos? nao pode ser algum codigo falhando para caregar algum recurso, por exemplo?
Rafael
Usando jars teoricamente deveria ficar mais rápido.
testem…
não funcionou
mas, afe!! 194k em um único arquivo?!?!?!?
Menos I/O?
Se vc renomear o arquvo “block1.gif” para qualquer outra coisa que nao comece com “block” (bloco1.gif, bloco.gif, blah.gif), vai funcionar. Resta descobrir a razao de dar pau com o nome do arquivo.
Rafael
Menos I/O?[/quote]
Sim, mesmo criando jars sem compressão.
Pô cara valeu mesmo!
renomeei e funcionou que nem o .class!
Quando fui fazer a classe block até pensei q podia ser palavra reservada mas vi q num era aí nem pensei mais nisso…
Rafael, Obrigado!
Mas ai eh que ta… pq deu pau com um nome de arquivo em especifico? Nao deveria ocorrer tal problema.
Rafael
bizarro demais.
Editei o texto. Minha lógica tava furada.
Esquisito, para as outras figuras funciona. :?
getResourceAsStream() vai falhar tambem ;). Ganha um chocolate virtual quem descobrir pq falha com o blockxxx.gif.
Rafael
Estou usando o Java 5. Dentro do .jar a figura está com o nome block1.GIF, mas na chamada dentro da classe Block está block1.gif. Mudando a extensão o jogo passa a funcionar normalmente.
Por quê? Não é com getResourceAsStream que a gente acessa arquivos dentro de um Jar?
[quote=fcmartins]Estou usando o Java 5. Dentro do .jar a figura está com o nome block1.GIF, mas na chamada dentro da classe Block está block1.gif. Mudando a extensão o jogo passa a funcionar normalmente.
[/quote]
Nope. No windows isso nao faz diferenca. Se voce quiser, mude o nome do arquivo para “block.gif”, altere o .java e tente rodar. Nao vai funcionar tambem.
[quote]
Por quê? Não é com getResourceAsStream que a gente acessa arquivos dentro de um Jar?[/quote]
getResourceAsStream() retorna um InputStream, enquando um getResource() retorna uma instancia de URL. Ambos servem para o mesmo proposito.
Rafael
Você não entendeu, ele funcionou. Quando eu mudei a extensão de .GIF p/ .gif a 2a fase do jogo carregou normalmente com os bloquinhos aparecendo no caminho do tanque. Voltando a extensão para .GIF voltou a dar o problema.
P.S.: Eu uso Windows.
Bom, no meu XP, quando rodando dentro do jar, nao funciona nem a pau usando “block1.gif”… agora, se mudo para “bLoCo.gIf”, vai funcionar tranquilo.
Rafael