Eu criei um método que vai me ajudar toda vez que eu quiser abrir um arquivo. Gostaria de saber como faço pra poder usa-lo sempre, ou seja, coloca-lo na biblioteca do java. Acho que eu não vou conseguir inseri-lo na classe File, como eu gostaria, vou ter que extende-la.
public static File retornaArquivo(String descrição, String extensão){
/**
* @param descrição Descrição do tipo de arquivo a ser aberto
* @param extensão A extensão do arquivo a ser aberto
* @return Retorna uma variavel do tipo File.
* @author Matheus Henrique da Silva
*
*/
JOptionPane.showMessageDialog(null, "Abra o arquivo de entrada.");
JFileChooser filechooser = new JFileChooser();
filechooser.setFileFilter(new FileNameExtensionFilter(
descrição, extensão));
filechooser.setAcceptAllFileFilterUsed(false);
filechooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
int saida = 0;
do {
if (filechooser.showOpenDialog(null) == JFileChooser.OPEN_DIALOG) {
return new File(filechooser.getSelectedFile().getAbsolutePath());
}
if (JOptionPane.showConfirmDialog(null, "Deseja tentar novamente?",
"Erro", JOptionPane.YES_NO_OPTION) == JOptionPane.NO_OPTION) {
saida = 1;
}
} while (saida == 0);
return null;
}
O que quer dizer com “coloca-lo na biblioteca do Java” ?
O que tu pode fazer é criar um JAR dessa classe e adicionar esse JAR nos projetos que você julgar necessário.
Ai pode usar Maven, Ant e afins, mas é basicamente isso.
Existe um jeito de se fazer isso, mas não é recomendado, porque causa mais problemas que os resolve. Basicamente, é criar um JAR com as classes que você quer usar sempre, e pô-lo no diretório …/jre/lib/ext (onde fica esse diretório? Dê uma olhada na JVM que você está usando).
Por exemplo, na minha máquina, só tem JARs que foram postos lá pela Oracle, e mais nenhum (que não sou maluco de fazer isso que você quer fazer) :
Volume in drive D is D
Volume Serial Number is B0E2-5363
Directory of d:\jdk1.6.0\jre\lib\ext
27/02/2012 14:58 <DIR> .
27/02/2012 14:58 <DIR> ..
27/02/2012 14:58 8.239 dnsns.jar
27/02/2012 14:58 845.188 localedata.jar
27/02/2012 14:58 521 meta-index
27/02/2012 14:58 170.239 sunjce_provider.jar
27/02/2012 14:58 35.547 sunmscapi.jar
27/02/2012 14:58 231.940 sunpkcs11.jar
6 File(s) 1.291.674 bytes
Quais são os problemas disso?
a) Você tem de fechar todos os programas que usam essa JVM para poder trocar a versão desse JAR (ele fica travado enquanto está sendo usado)
b) Pode ser que você não tenha acesso de escrita nesse diretório
c) Você pode ter 200 JVMs diferentes na sua máquina e o Eclipse ou NetBeans está usando justamente a JVM onde você não instalou o seu JAR.
O que se costuma fazer é o seguinte:
a) Criar um jar contendo os .class compilados
b) Criar um outro jar contendo somente os fontes
c) Ponha os dois jar na pasta ‘lib’ no seu projeto
d) Quando for usar o jar, você associa com o seu projeto (no caso do Eclipse, você tem de acertar o “Referenced Libraries” - veja a figura abaixo) e ele vai ser automaticamente usado (você pode então dar os imports etc.)
Vou mostrar mais ou menos como ficaria seu projeto no Eclipse (no NetBeans o conceito é bem semelhante).