Listar dispositivos removíveis em Java

Este exemplo lista todos os dispositivos USB no windows, caso o SO for linux irá listar todos os dispositivos montados em /media/;

        Log("Buscando por dispositivos");//gravação de log

        File[] roots = null;//cria um vetor de file aonde ficara os dispositivos
        
        FileSystemView fs = FileSystemView.getFileSystemView();
        
        //verifica se o so eh windows
        if (System.getProperties().getProperty("os.name").toLowerCase().contains("windows")) {
            
            roots = File.listRoots();//lista os diretorios raiz
            
            for (File file : roots) {//percorre o vetor roots
                String descricao = fs.getSystemTypeDescription(file);//pega a descrição dos diretorios
                if (descricao != null) {//se for diferente de nulo
                    if (descricao.endsWith("removível")) {//verifica se é um disco removivel
                        System.out.println(file.getAbsolutePath());//mostra dispositivo
                    }
                }
            }       //verifica se eh linux
        } else if (System.getProperties().getProperty("os.name").toLowerCase().contains("linux")) {
            
            roots = fs.getFiles(new File("/media/"), true);//pega todos os diretorios montados em /media/
            
            for (File file : roots) {//percorre o vetor roots
                        System.out.println(file.getAbsolutePath());//mostra dispositivo
            }
        }

There is insufficient storage to install this suite – J2ME

Ao compilar um projeto J2ME no Windows me deparei com o seguinte problema:

*** Error ***
A problem occured during deploying application from http://127.0.0.1:2317/EXEMPLO.jad
* Reason:
There is insufficient storage to install this suite

Continue reading

java.lang.IllegalArgumentException: width<=0 height<=0

Olá.
Bom, me deparei com o seguinte problema ao tentar compilar um projeto J2ME:
Ao tentar executar o programa o compilador abria e logo feixando dando a seguinte excessão:

“java.lang.IllegalArgumentException:  width<=0 height<=0″

(e varias outras mensagens como :
“java.lang.IllegalArgumentException:  width<=0 height<=0″
java.lang.IllegalArgumentException:  width<=0 height<=0
at java.awt.image.SampleModel.<init>(libgcj.so.11)
received signal SIGSEGV
Method…………: b745970c ‘javax/microedition/lcdui/ImmutableImage.createIcon (static)’
at java.awt.image.SinglePixelPackedSampleModel.<init>(libgcj.so.11)
[...]
)

Continue reading

Clonar Objeto em J2ME

Clonar Objeto em J2ME

Estava procurando uma melhor forma de utilizar a clonagem de objeto em j2me, e encontrei esta.

A clonagem que eu digo, é uma copia com valores identicos de uma outra instancia. Utilizo isso para
fazer verificações de alteracao do objeto.

Na classe que desejamos clonar iremos criar um contrutor que receba ela mesma,
assim ela vai receber a classe e popularemos o novo objeto com seus valores.
Criando um novo objeto identico.

Segue o exemplo abaixo da implementação do contrutor:

public class MinhaClasse {

    String nome;
    int idade;
    /**outros atributos**/
    
    /** Contrutor responsavel por criar um objeto clonado.
     * 
     * @param c MinhaClasse
     */
    public MinhaClasse(MinhaClasse c) {
        /** faça a clonagem ex:**/
        this.nome = c.getNome();
        this.idade = c.getIdade();
    }

    /**outros contrutores**/
    
    public int getIdade() {
        return idade;
    }

    public String getNome() {
        return nome;
    }
    
    /**Outros métodos**/
}

Como implementar:
Continue reading

Instalação Java Development Kit no Ubuntu.

Abra um terminal e digite o seguinte comando:

======================================================
$ sudo add-apt-repository “deb http://archive.canonical.com/ lucid partner”
======================================================

Logo em seguida digite:

================
$ sudo apt-get update
================

E agora para instalar o Sun Java você usará esses comandos:

==========================
$ sudo apt-get install sun-java6-jdk
==========================

Alem do pacote JDK temos os seguintes:

======================================================
sun-java6-bin sun-java6-fonts sun-java6-jdk sun-java6-plugin
sun-java6-demo sun-java6-javadb sun-java6-jre sun-java6-source
======================================================

Normalmente eu instalo o jre, fonts, plugin e o jdk.

Vlws.
Guilherme B. Zarelli

Executar “Mid” e “Rmf” em Java

Ai pessoal uma forma bem simples de implementar em java um executor de arquivos mid ou rmf.

        try {
            Sequencer sequencer = MidiSystem.getSequencer();
            sequencer.open();
            // De arquivo
            InputStream is = new BufferedInputStream(new FileInputStream(new File("midfile")));
            // De URL
            is = new BufferedInputStream(new URL("http://hostname/rmffile").openStream());
            sequencer.setSequence(is);
            //Toca o audio
            sequencer.start();
        } catch (Exception e) {
            e.printStackTrace();
        }

Obrigado,
duvidas so avisar ;)…
Guilherme B. Zarelli

Criptografia de Dados

Bom dia,

Hoje estou postando um codigo simples de criptografia.

Não tem muito segredo para compreender o codigo, fiz passando no construtor dele o Tipo de criptografia ex : “MD5″, “SHA”, “SHA-64″, “SHA-128″, “SHA-256″ caso tenha outros não sei rsrsr… bem, o mais utilizado e seguro é a MD5.

Os dados são passados pelo método “Criptografar” e o valor será retornado pelo mesmo.

Segue o codigo:


public class Criptografia {

    private String tipo;

    public Criptografia(String tipo) {
        this.tipo = tipo;
    }

    public String Criptografar(String dados) {
        try {
            MessageDigest digest = MessageDigest.getInstance(tipo);
            digest.update(dados.getBytes());
            BASE64Encoder encoder = new BASE64Encoder();
            dados = encoder.encode(digest.digest());
        } catch (Exception e) {
            e.printStackTrace();
        }
        return dados;
    }
}

Uma forma de criptografar seus dados bem simples.
Há varias mais complexas com mais segurança, mas para pequenos projetos acho que esta basta.

Obrigado.
Guilherme B. Zarelli