Programação por Objectos Java: instalação, configuração e ferramentas MEEC@IST Java 1/21
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 C++: http://www.netbeans.org/features/cpp/index.html MEEC@IST Java - 2/21
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 MEEC@IST Java 3/21
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). J2SE (Standard Edition), para desktop e servidores. MEEC@IST Java 4/21
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. MEEC@IST Java 5/21
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 J2SE 6.0: http://download.oracle.com/javase/6/docs/api/ MEEC@IST Java 6/21
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 MEEC@IST Java 7/21
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: Command not found MEEC@IST Java 8/21
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 setenv CLASSPATH.:$Ljava MEEC@IST Java 9/21
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 CLASSPATH=/usr/java/jdk1.5.0_06:$CLASSPATH MEEC@IST Java 10/21
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 MEEC@IST Java 11/21
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 completo até estes. MEEC@IST Java 12/21
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). MEEC@IST Java 13/21
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 programa. MEEC@IST Java 14/21
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. Após compilação é gerado Fich.class. MEEC@IST Java 15/21
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. MEEC@IST Java 16/21
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 MEEC@IST Java 17/21
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 Ficheiro.class principal Subdirectório (pacote) MEEC@IST Java 18/21
Ferramenta jar (3) Comando jar cf arquivo.jar lista-fich jar cfm arquivo.jar META-INF/MANIFEST.MF lista-fich jar tf arquivo.jar jar xf arquivo.jar [lista-fich] Objectivo Cria arquivo jar e gera manifest por omissão Cria aquivo jar com ficheiro manifest dado Lista conteúdo arquivo Extrai ficheiros MEEC@IST Java 19/21
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. No Windows, o arquivo JAR pode ser aberto pelo WinRAR. MEEC@IST Java 20/21
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. MEEC@IST Java 21/21