quinta-feira, 6 de dezembro de 2007

Chamar um programa externo

Para fazer a chamada de um programa faça assim:

// Chama o firefox e passa como parâmetro uma página inicial
try {
Runtime.getRuntime().exec("firefox http://netbeando.blogspot.com");
} catch (IOException ex) {
System.out.println("Erro!");
}

Bom, pelo menos fazendo assim no Linux funciona :-)

Maneira simples de adicionar ano(s) em uma data

Uma forma bem simples de adicionar "n" anos a uma data é utilizando a rotina abaixo de uma classe estática, por exemplo:


// Classe estática
public class Utilitarios {
public static Date addYears(Date date, int years) {
Calendar newDate = Calendar.getInstance();
newDate.setTime(date);
newDate.add(Calendar.YEAR, years);
return newDate.getTime();
}
}

E a utilização dentro de uma classe sua fica algo do tipo:

Utilitarios.addYears(new Date(), 5);

Dessa forma foram adicionados 5 anos na data de hoje.

[]´s

NetBeans 6.0 (versão final, até a próxima...)

No dia 03/12/2007 foi liberada a versão 6.0 do NetBeans, finalmente, estava esperando por ela desde o início do ano... como a paciência foi pouca acabei utilizando as betas e as releases candidates, com alguns pequenos bugs mas sem maiores problemas.

Acabei de baixar essa versão e instalar, o instalador (desde a RC 1) ficou realmente muito bom, agora você pode baixar a versão full e instalar apenas o que utiliza realmente e se futuramente precisar utilizar outro pacote basta executar novamente o instalador e selecionar o pacote necessário.

No meu caso ele já reconheceu que o Glassfish estava instalado e não reinstalou, perfeito.

De resto, tudo funcionando a contento, abri os meus projetos nessa versão e todos foram executados sem problemas.

Agora é só aproveitar o bean binding que tá show de bola.

Uma coisa interessante é que utilizo o NetBeans no Ubuntu 7.10, na RC 1 e RC 2 ocorreram vários problemas em telas que possuiam JCombobox, no site netbeans.org existia um chamado aberto informando do problema, mas pelo que eu me lembro o técnico informou que era relacionado apenas com o Ubuntu e que não se tratava de um problema específico do NetBeans, bom, não sei se eles acabaram arrumando no NetBeans mesmo julgando que o problema não era com eles, só sei que agora está funcionando sem problemas. Nas RC1 e RC2 para contornar esse problema eu acabei executando o NetBeans com o parâmetro "--ui javax.swing.plaf.metal.MetalLookAndFeel", isso faz com que seja mudada a aparência da IDE, resolveu o problema dos JCombobox nessas versões, agora, acabei deixando esse parâmetro na chamada do NetBeans porque me acostumei com o visual :-) acho até que melhorou a quantidade de informações que se consegue visualizar na tela, pois me parece que a fonte utilizada é menor.

T+

sábado, 1 de dezembro de 2007

Mensagem: detached entity passed to persist

Essa mensagem estava ocorrendo em um formulário utilizando JPA TopLink, sempre que eu tentava inserir um segundo registro em sequencia, procurando por uma solução encontrei a seguinte:

http://javanotepad.blogspot.com/2007/05/ive-found-bug-in-hibernate.html

Se você está com preguiça de ler eu vou resumir :-)

O problema ocorre porque após ocorrer algum problema ao tentar salvar o registro o sistema tenta persistir o mesmo objeto persistido anteriormente, pra mim resolveu inserindo a linha que está em negrito:

Funcionarios f = new admconvenios.Funcionarios();
entityManager.persist(f);
f.setCodigo(null);