Mostrando postagens com marcador java. Mostrar todas as postagens
Mostrando postagens com marcador java. Mostrar todas as postagens

quinta-feira, 31 de dezembro de 2009

Instalando Java com Wine no Linux

Acesso o site de download do java, na sun.com em download Java.

- Clique em "all Java downloads here" ;
- Para executar é necessário ter o wine instalado no Ubuntu. (veja aqui como instalar caso não tenha);
- Selecione a versão java para windows, *offline*. Clique em "Windows 7/XP/Vista/2000/2003/2008 Offline";
- Use o navegador de arquivos ("Locais -> Pastas Pessoais") e vá para o diretório onde baixou o arquivo;
- Clique com o botão direito e clique em "Abrir com o carregador de aplicativos Windows Wine";
- Siga as instruções de instalação e pronto;

O Java esta instalado? É necessário abrir o navegador, versão windows e abrir o link de teste.
Use o Firefox para Windows (veja aqui como), entre nesse link e clique em "Verify Java version".

segunda-feira, 8 de setembro de 2008

Usando gij e gcj no lugar do javac

Mostrarei como desenvolver programas java usando as ferramentas do projeto gcc (http://gcc.gnu.org/).

Começamos baixando os pacotes de desenvolvimento e de execução, são o gcj e o gij.

Para o ubuntu use o apt-get para isso:

# apt-get install gcj gij

O gcj é o compilador, e o gij é o interpretador bytecode java.

Veja o exemplo:


Hora.java


class Hora {

    private int hor, min, seg;
    public int getHoras () {return hor;}
    public int getMinutos (){return min;}
    public int getSegundos (){return seg;}
    public void setHoras (int h) {
          if (h >= 0 && h < 24)
                    hor = h;
    }
    public void setMinutos (int m) {
          if (m >= 0 && m < 60)
                    min = m;
    }
    public void setSegundos (int s) {
          if (s >= 0 && s < 60)
                    seg = s;
    }
    public void setHorario (int h, int m, int s) {
          setHoras (h); setMinutos (m); setSegundos (s);
    }
    public String toString () {
          return getHoras() + ":" + getMinutos() + ":" + getSegundos();
    }
}


UsaHora.java



import java.util.Calendar;
public class UsaHora {
   public static void main (String args[]) {
         //declara e instancia um objeto tipo Hora
         Hora hora = new Hora();
         //atribui valores ao objeto com valores válidos
         hora.setHorario (15, 30, 10);
         //exibe hora
         System.out.println ("Hora: " + hora.toString());
         //Pega data atual
         Calendar dataAtual = Calendar.getInstance();
         //declara, instancia e atribui valores a outro objeto do tipo Hora
         Hora outraHora = new Hora();
         int h = dataAtual.get (Calendar.HOUR_OF_DAY);
         int m = dataAtual.get (Calendar.MINUTE);
         int s = dataAtual.get (Calendar.SECOND);
         outraHora.setHorario (h, m, s);
         //exibe hora atual
         System.out.println ("Hora atual: " + outraHora.toString());
   }
}








Copie e cole os programas java acima.

Usando o método tradicional, com o java, você faria assim:

# javac Hora.java
# javac UsaHora.java
# java UsaHora
Hora: 15:30:10
Hora atual: 20:41:45
#

Usando o gij e o gcj, faremos assim:

gcj Hora.java -C
# gcj UsaHora.java -C
# gij UsaHora
Hora: 15:30:10
Hora atual: 20:41:45

Para que server o "-C" ?
Isso é para dizer para o compilador para gerar o código em bytecode java. Isso significa que, com o gcj, você pode gerar o código para a máquina nativa.
Ou seja, com o gcj você pode gerar um executável diretamente para a máquina que executará o programa, para fazer isso use o seguinte comando:

# gcj --main=UsaHora Hora.java UsaHora.java -o UsaHora
# ./UsaHora
Hora: 15:30:10
Hora atual: 20:47:5

Aqui dizemos ao compilador para usar a estrutura da classe UsaHora como main, e para incorporar os arquivos Hora.java e UsaHora.java para compilar de uma vez, gerando um código objeto UsaHora

Aqui, no caso, geramos um código ELF, que é um executável linux. Mas se o gcj for instalado no Windows, basta fazer o mesmo comando, porém colocando um ".exe". assim:

c:\ gcj --main=UsaHora Hora.java UsaHora.java -o UsaHora.exe
c:\UsaHora
Hora: 15:30:10
Hora atual: 20:47:5

Em geral os códigos para máquina virtual são muito rápidos, dando pouca diferênça de performance. Você pode fazer esse teste gerando loops grandes tanto em C como em Java para constatar isso.