Programação por Objectos
Java: instalação, configuração e
ferramentas
Ferramentas – revisão
• J2SE JDK (última vs, pelo menos vs 5.0)
http://java.sun.com/javase/downloads/index.jsp
• Eclipse, Classic (vs Galileo)
http://www.eclipse.org/downloads/
com os seguintes plugins:
– Modelação UML com eUML2 (free edition)
http://www.soyatec.com/euml2/installation/
– Programação em C/C++ com CDT
http://www.eclipse.org/cdt/downloads.php
– NetBeans, Java SE (alternativa ao Eclipse)
http://www.netbeans.org/downloads/index.html
com os segiuntes plugins:
• UML: http://www.netbeans.org/features/uml/index.html
Java 5.0
• Carregar (gratuitamente) J2SE em:
http://java.sun.com/javase/downloads/index.jsp
– Versão mais recente, pelo menos J2SE 5.0
– Para obter versão, executar
java –version
Plataforma Java – revisão (1)
• A tecnologia Java é distribuída para 3 plataformas:
– J2EE (Entreprise Edition), para desenvolvimento de aplicações empresariais.
– J2ME (Micro Edition), para dispositivos de capacidades limitadas (telemóveis e PDA’s).
Plataforma Java – revisão (2)
• Debaixo da plataforma existem vários directórios:
– J2xx Runtime Environment (JRE):
• Interpretador JVM, classes de ambiente, … • Usado apenas para correr aplicações.
– J2xx Development Kit (JDK):
• JRE, compilador, classes utilitárias (Swing,…), … • Usado no desenvolvimento de aplicações.
Plataforma Java – revisão (3)
• A API do Java 2 consiste em diversas classes distribuídas e organizadas em pacotes e subpacotes.
• Pacotes básicos:
– java.lang: classes de ambiente (importado automaticamente) – java.util: classes utilitárias (tipos de dados, etc)
– java.io: classes para entrada e saída
– java.net: classes para uso em rede (TCP/IP) – java.sql: classes para acesso via JDBC
– java.awt: interface gráfica universal nativa
– javax.swing: interface gráfica (mais leve que java.awt)
• Documentação:
– http://java.sun.com/reference/api/index.html
Java – Linux (1)
• Normalmente, directório de residência do Java no Linux:
– /usr/java/jdk1.5.0_06
• Compilador (javac) e Interpretador JVM (java)
– /usr/java/jdk1.5.0_6/bin/
• Interpretador JVM (java)
– /usr/java/jre1.5.0_06/bin/
• As classes pré-definidas pelo Java, organizadas segundo o
nome dos pacotes onde se encontram, são disponibilizadas em:
– /usr/java/jdk1.5.0_06/src.zip
Por exemplo, a class String está definida no pacote java.lang logo encontra-se, no ficheiro comprimido src.zip, em java/lang/String.java
Java – Linux (2)
• Configuração:
– Actualizar a variável PATH caso se queira utilizar os executáveis do JDK (javac, java, javadoc, etc) da
directoria de trabalho sem ter de usar o caminho completo até ao executável.
– Da mesma forma, actualizar a variável CLASSPATH caso se queira aceder aos directórios de outras classes (por
exemplo, de uma biblioteca) sem ter de usar o caminho completo até estes.
– Estará a PATH actualizada? % which java
Java – Linux (3)
– Para C shell (csh):
• Adicionar ao ficheiro de startup (~/.cshrc) o directório de residência do compilador e interpretador JVM:
setenv Ljava /usr/java/jdk1.5.0_06 set path=($path $Ljava/bin)
– Carregar o ficheiro de startup e verificar: source ~/.cshrc
which java
• Directórios de outras classes (por exemplo, classes de ambiente) são indicados na variável de ambiente
CLASSPATH
Java – Linux (4)
– Para ksh, bash ou sh:
• Adicionar ao ficheiro de startup (~/.profile) o directório de residência do compilador e interpretador JVM:
PATH=/usr/java/jdk1.5.0_06/bin:$PATH
– Carregar o ficheiro de startup e verificar: . $HOME/.profile
which java
• Directórios de outras classes (por exemplo, classes de ambiente) são indicados na variável de ambiente
CLASSPATH
Java – Windows (1)
• Normalmente, directório de residência do Java no Windows:
– C:\Program Files\Java\
• Compilador (javac) e Interpretador JVM (java)
– C:\Program Files\Java\jdk1.6.0\bin
• Interpretador JVM (java)
– C:\Program Files\Java\jre1.6.0\bin
• As classes pré-definidas pelo Java, organizadas segundo o
nome dos pacotes onde se encontram, são disponibilizadas em:
– C:\Program Files\Java\jdk1.6.0\src.zip
Por exemplo, a class String está definida no pacote java.lang logo encontra-se, no ficheiro comprimido src.zip, em java/lang/String.java
Java – Windows (2)
• Configuração:
– Actualizar a
variável PATH
caso se queira utilizar
os executáveis do JDK (javac, java, javadoc,
etc) da directoria de trabalho sem ter de usar o
caminho completo até ao executável.
– Da mesma forma, actualizar a
variável
CLASSPATH
caso se queira aceder aos
directórios de outras classes (por exemplo, de
uma biblioteca) sem ter de usar o caminho
Java – Windows (3)
– Incluir o directório de residência do Java na
variável PATH (tipicamente no Control Panel +
System + Advanced + Environment
Variables + User variables ou System
variables).
– Directórios de outras classes (por exemplo,
classes de ambiente) são indicados na variável de
ambiente CLASSPATH (tipicamente no Control
Panel + System + Advanced + Environment
Variables + User variables).
Método main – revisão
• O interpretador JVM executa sempre o
método main
da classe indicada na linha do
comando:
– Qualificadores:
public static
– Retorno:
void
– Parâmetros:
String[] args
• Todas as classe numa aplicação podem ter
um método main. O método main a executar
é especificado de cada vez que se corre o
Execução de programas Java (1)
• Passos na execução de programas:
1) Editar Fich.java
• Fich.java contém classe Fich.
• Todas as classes devem residir nos directórios indicados no CLASSPATH.
2) Compilar javac Fich.java
• Pode usar-se a opção –cp para indicar directórios necéssários não indicados no CLASSPATH.
Execução de programas Java (2)
3) Executar java Fich• A classe Fich deve conter método main.
• Pode usar-se a opção –cp para indicar directórios necéssários não indicados no CLASSPATH.
– No Windows, por exemplo:
java –cp %CLASSPATH%;C:\libs\lib.jar Fich
– No Linux, por exemplo:
java –cp \usr\libs\lib.jar:$CLASSPATH Fich
• Pode usar-se a opção –verbose, que lista todos os passos e classes carregadas.
Ferramenta jar (1)
• A ferramenta jar (Java archive tool) gere arquivo de
ficheiros .class, preservando hierarquia de directórios. – A hierarquia de directórios deve preservar a hierarquia
de pacotes. Por exemplo, a classe String do pacote java.lang, encontra-se definida em /java/lang/ String.java
Ferramenta jar (2)
• O arquivo JAR pode conter um directório META-INF/
onde reside o ficheiro de texto MANIFEST.MF
com a informação sobre qual a classe a executar: – Directivas (ex: versão, ferramenta)
– Classe principal (classe a executar) – Linha em branco
Manifest-Version: 1.0
Created-By: 1.5.0_01 (Sun Microsystems Inc.) Main-Class: projecto.Simulador
Ferramenta jar (3)
Comando Objectivo
jar cf arquivo.jar lista-fich jar cfm arquivo.jar
META-INF/MANIFEST.MF lista-fich
Cria arquivo jar e gera manifest por omissão Cria aquivo jar com ficheiro manifest dado
jar tf arquivo.jar Lista conteúdo arquivo
Ferramenta jar (4)
• O intepretador JVM também pode correr sobre um arquivo jar:
java –jar projecto.jar
A classe executada é indicada no ficheiro META-INF/MANIFEST.MF
• O programa jar, codificado em C, é fornecido no JDK.
Ferramenta jar (5)
• Executável
:
– Para tornar um arquivo jar executável o ficheiro
MANIFEST.MF deve conter a linha correspondente à
Main-Class.
– Para executar um arquivo jar basta usar a opção –jar.
• Biblioteca
:
– Para distribuir uma biblioteca deve disponibilizar um arquivo
jar com as classes compiladas (neste caso o ficheiro
MANIFEST.MF não deve conter a linha correspondente à Main-Class).
– Para usar a biblioteca basta compilar/executar o programa tendo o arquivo jar da biblioteca no CLASSPATH.