SlideShare uma empresa Scribd logo
Desenvolvimento
    Elenilson Vieira
    elenilson.vieira.filho@gmail.com
Usando o javac
• javac [options] [source files]

• Exemplos:
  – javac – help
  – javac –classpath com:. –g Foo.java Bar.java
Usando o javac
• Opção –d
  – Permite que você defina um diretório para
    seus .class
    • javac –d ../classes MyClass.java


  – Se o diretório destino não existir, o
    compilador mostrará um erro
Usando o java
• java [options] class [args]
  – [options] e [args] são opcionais e podem ter
    múltiplos argumentos
  – Não precisa especificar o “.class”
Usando as Propriedades do Sistema

• Pode ser usada para acessar uma
  informação persistente do sistema
  – Java Virtual Machine, Sistema Operacional,
    etc


• Você pode adicionar ou recuperar suas
  próprias propriedades
  – java –DmyProp=MyValue Class a 1
Usando as Propriedades do Sistema

• Se o valor tiver espaços, esse deve ter
  aspas
  – java –DcmdProp=“cmdVal take 2” TestProps

• Você pode adicionar e recuperar suas
  propriedades usando setProperty(String
  key, String value) e getProperty(String key)

• getProperty retorna uma propriedade como
  String
Usando as Propriedades do Sistema

Properties p = System.getProperties();
p.setProperty(quot;myPropquot;, quot;myValuequot;);
p.getProperty(“os.name”)
Argumentos de Linha de Comando
• public static void main(String args[]){}
  – args contém os argumentos passados no
    java para a classe


• Exemplo
  – java MyClass x eu
     • args[0] = x
     • args[1] = eu
Procurando por outras Classes
• Quando usamos o java e javac, na
  maioria dos casos queremos que ele ache
  outras classes

• Classes do JSE
  – Pacotes:
    • java.lang
    • java.util
Procurando por outras Classes
• Ambos tem uma lista de locais que
  procuram por outras classes

• Se achar duas ou mais classes com o
  mesmo nome, ambos usam a que primeiro
  achar

• Primeiro vão no diretório do JSE
Procurando por outras Casses
• Depois procuram no diretório definido
  pelo classpath

• O classpath pode ser definido. Se não
  for definido é usado o definido pela
  variável de ambiente do Sistema
Classpath
• Consiste em um número variável de
  locais de diretórios separados por
  delimitadores
  – / no Unix
  –  no Windows
       r




• Separador de locais
  –:
Classpath
• Exemplo
  – classpath /home/eu:/var/www
  – Especifica dois diretórios a se procurar
     • /home/eu
     • /var/www


• Quando especifica um diretório não está
  especificando os acima dele
  – /home ou /var

• Pode-se usar apenas [-cp]
Classpath
• Quando especificamos o classpath o java
  e javac não mais procuram no diretório
  corrente

• Coloca-se um ponto
  – classpath /home/elenilson:/var/www:.


• A ordem dos diretórios importa
Classpath
• O diretório passado tem que
  – Absoluto
  – Relativo ao diretório corrente
Pacotes
• O nome do pacote não pode ser
  subdividido

• Pode-se usar uma classe
  – Colocando seu nome totalmente qualificado
    • com.foo.MyClass = ...
  – Colocando uma declaração import e usando
    seu nome falso
Pacotes
Java Archive (JAR)
• Criar
  – jar –cf MeuJar.jar meuDiretório
  – Cria o JAR MeuJar.jar com a aplicação do
    diretório meuDiretório


• Listar conteúdo
  – jar –tf MeuJar.jar
Java Arquive (JAR)
• Procurar arquivos em pacotes do jar é
  semelhante

• Basta incluir no final do classpath o
  nome do jar
  – javac –cp ws/MeuJar.jar Exemplo.java
jre/lib/ext com JAR
• java e javac utilizam esse diretório para
  encontrar classes que sua aplicação
  precisa

• Isso é definido por padrão

• Se você colocar um jar dentro desse
  diretório, vai poder usar as classes do
  jar sem necessitar do classpath
Import estático
• É usado quando você quer utilizar os
  membros estáticos de uma classe

• Cuidado com ambiguidades
  – Se você fizer import estático de um
    Integer e um Long e usar MAX_VALUE, o
    compilador não saberá de quem é e acusará
    um erro.
Import Estático
Dúvidas?

Mais conteúdo relacionado

Destaque

Especubol s
Especubol sEspecubol s
Microsoft word parte 1 web
Microsoft word parte 1 webMicrosoft word parte 1 web
Microsoft word parte 1 web
omar
 
Red
RedRed
Panís cfgm borges t7 t8
Panís cfgm borges t7 t8Panís cfgm borges t7 t8
Panís cfgm borges t7 t8Pilar Berenguer
 
Exam
ExamExam
Sistema de informacion
Sistema de informacionSistema de informacion
Sistema de informacion
Diego Gomez
 
Arte y los sentidos
Arte y los sentidosArte y los sentidos
Arte y los sentidos
OlmedoAlvarado
 
Coincident Equations with hints
Coincident Equations with hintsCoincident Equations with hints
Coincident Equations with hints
Esteban Parra
 
Bloque 0
Bloque 0Bloque 0
Bloque 0
13147585
 
Independencia del BCE
Independencia del BCEIndependencia del BCE
Independencia del BCE
Hugo Cuello
 
Proyecto graficas policia ter
Proyecto graficas policia terProyecto graficas policia ter
Proyecto graficas policia ter
J David Garcia R
 
Достопримечательности Британии
Достопримечательности БританииДостопримечательности Британии
Достопримечательности Британии
olgmikh
 
Elementos, formas y situaciones de la argumentación
Elementos, formas y situaciones de la argumentaciónElementos, formas y situaciones de la argumentación
Elementos, formas y situaciones de la argumentación
paulskate
 
Resumen fotografico comunicaciones moviles
Resumen fotografico comunicaciones movilesResumen fotografico comunicaciones moviles
Resumen fotografico comunicaciones moviles
Erika Zambrano
 
Empathize and define ii
Empathize and define iiEmpathize and define ii
Empathize and define ii
Fernando Allende Morales
 

Destaque (20)

Innovagir
InnovagirInnovagir
Innovagir
 
Especubol s
Especubol sEspecubol s
Especubol s
 
Microsoft word parte 1 web
Microsoft word parte 1 webMicrosoft word parte 1 web
Microsoft word parte 1 web
 
Red
RedRed
Red
 
Panís cfgm borges t7 t8
Panís cfgm borges t7 t8Panís cfgm borges t7 t8
Panís cfgm borges t7 t8
 
Exam
ExamExam
Exam
 
Sistema de informacion
Sistema de informacionSistema de informacion
Sistema de informacion
 
50 ideas
50 ideas50 ideas
50 ideas
 
Arte y los sentidos
Arte y los sentidosArte y los sentidos
Arte y los sentidos
 
Yancy espitia
Yancy espitiaYancy espitia
Yancy espitia
 
Archivo gbi angie
Archivo gbi angieArchivo gbi angie
Archivo gbi angie
 
Coincident Equations with hints
Coincident Equations with hintsCoincident Equations with hints
Coincident Equations with hints
 
Bloque 0
Bloque 0Bloque 0
Bloque 0
 
Independencia del BCE
Independencia del BCEIndependencia del BCE
Independencia del BCE
 
Proyecto graficas policia ter
Proyecto graficas policia terProyecto graficas policia ter
Proyecto graficas policia ter
 
Достопримечательности Британии
Достопримечательности БританииДостопримечательности Британии
Достопримечательности Британии
 
Elementos, formas y situaciones de la argumentación
Elementos, formas y situaciones de la argumentaciónElementos, formas y situaciones de la argumentación
Elementos, formas y situaciones de la argumentación
 
Presentation1
Presentation1Presentation1
Presentation1
 
Resumen fotografico comunicaciones moviles
Resumen fotografico comunicaciones movilesResumen fotografico comunicaciones moviles
Resumen fotografico comunicaciones moviles
 
Empathize and define ii
Empathize and define iiEmpathize and define ii
Empathize and define ii
 

Semelhante a Desenvolvimento

java_avancado.pdf
java_avancado.pdfjava_avancado.pdf
java_avancado.pdf
GersonZavala2
 
Java primeiros-passos
Java primeiros-passosJava primeiros-passos
Java primeiros-passos
Leide Sayuri Ogasawara
 
Novas Funcionalidade no PHP 5.3
Novas Funcionalidade no PHP 5.3Novas Funcionalidade no PHP 5.3
Novas Funcionalidade no PHP 5.3
Douglas V. Pasqua
 
5 Maneiras de melhorar seu código PHP
5 Maneiras de melhorar seu código PHP5 Maneiras de melhorar seu código PHP
5 Maneiras de melhorar seu código PHP
Augusto das Neves
 
Como usar a documentação da API Java 2
Como usar a documentação da API Java 2Como usar a documentação da API Java 2
Como usar a documentação da API Java 2
Denis L Presciliano
 
Java
JavaJava
Java
bielgott
 
Curso Java Básico - Aula02
Curso Java Básico - Aula02Curso Java Básico - Aula02
Curso Java Básico - Aula02
Natanael Fonseca
 
Php5 e a orientação a objetos
Php5 e a orientação a objetosPhp5 e a orientação a objetos
Php5 e a orientação a objetos
xbacon
 
Aula4
Aula4Aula4
Aula4
fkimura
 
JBossClassLoader
JBossClassLoaderJBossClassLoader
Curso Java Básico - Aula 04
Curso Java Básico - Aula 04Curso Java Básico - Aula 04
Curso Java Básico - Aula 04
Natanael Fonseca
 
Java 02 Iniciando Uso Java
Java 02 Iniciando Uso JavaJava 02 Iniciando Uso Java
Java 02 Iniciando Uso Java
Regis Magalhães
 
Prog web 06-php-oo
Prog web 06-php-ooProg web 06-php-oo
Prog web 06-php-oo
Regis Magalhães
 
Doctrine2 Seminário PHP
Doctrine2 Seminário PHPDoctrine2 Seminário PHP
Doctrine2 Seminário PHP
Guilherme Blanco
 
Php 08 Oo
Php 08 OoPhp 08 Oo
Php 08 Oo
Regis Magalhães
 
PHP FrameWARks - FISL
PHP FrameWARks - FISLPHP FrameWARks - FISL
PHP FrameWARks - FISL
Marcio Albuquerque
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao java
Armando Daniel
 
55 New Things in Java 7 - Brazil
55 New Things in Java 7 - Brazil55 New Things in Java 7 - Brazil
55 New Things in Java 7 - Brazil
Stephen Chin
 
Javascript para CSharpers 1 - Comparando
Javascript para CSharpers   1 - ComparandoJavascript para CSharpers   1 - Comparando
Javascript para CSharpers 1 - Comparando
Wesley Lemos
 
Javascript para CSharpers 3 - Conceitos
Javascript para CSharpers 3 - ConceitosJavascript para CSharpers 3 - Conceitos
Javascript para CSharpers 3 - Conceitos
Wesley Lemos
 

Semelhante a Desenvolvimento (20)

java_avancado.pdf
java_avancado.pdfjava_avancado.pdf
java_avancado.pdf
 
Java primeiros-passos
Java primeiros-passosJava primeiros-passos
Java primeiros-passos
 
Novas Funcionalidade no PHP 5.3
Novas Funcionalidade no PHP 5.3Novas Funcionalidade no PHP 5.3
Novas Funcionalidade no PHP 5.3
 
5 Maneiras de melhorar seu código PHP
5 Maneiras de melhorar seu código PHP5 Maneiras de melhorar seu código PHP
5 Maneiras de melhorar seu código PHP
 
Como usar a documentação da API Java 2
Como usar a documentação da API Java 2Como usar a documentação da API Java 2
Como usar a documentação da API Java 2
 
Java
JavaJava
Java
 
Curso Java Básico - Aula02
Curso Java Básico - Aula02Curso Java Básico - Aula02
Curso Java Básico - Aula02
 
Php5 e a orientação a objetos
Php5 e a orientação a objetosPhp5 e a orientação a objetos
Php5 e a orientação a objetos
 
Aula4
Aula4Aula4
Aula4
 
JBossClassLoader
JBossClassLoaderJBossClassLoader
JBossClassLoader
 
Curso Java Básico - Aula 04
Curso Java Básico - Aula 04Curso Java Básico - Aula 04
Curso Java Básico - Aula 04
 
Java 02 Iniciando Uso Java
Java 02 Iniciando Uso JavaJava 02 Iniciando Uso Java
Java 02 Iniciando Uso Java
 
Prog web 06-php-oo
Prog web 06-php-ooProg web 06-php-oo
Prog web 06-php-oo
 
Doctrine2 Seminário PHP
Doctrine2 Seminário PHPDoctrine2 Seminário PHP
Doctrine2 Seminário PHP
 
Php 08 Oo
Php 08 OoPhp 08 Oo
Php 08 Oo
 
PHP FrameWARks - FISL
PHP FrameWARks - FISLPHP FrameWARks - FISL
PHP FrameWARks - FISL
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao java
 
55 New Things in Java 7 - Brazil
55 New Things in Java 7 - Brazil55 New Things in Java 7 - Brazil
55 New Things in Java 7 - Brazil
 
Javascript para CSharpers 1 - Comparando
Javascript para CSharpers   1 - ComparandoJavascript para CSharpers   1 - Comparando
Javascript para CSharpers 1 - Comparando
 
Javascript para CSharpers 3 - Conceitos
Javascript para CSharpers 3 - ConceitosJavascript para CSharpers 3 - Conceitos
Javascript para CSharpers 3 - Conceitos
 

Mais de Elenilson Vieira

Aulão de JPA com Tomaz Lavieri
Aulão de JPA com Tomaz LavieriAulão de JPA com Tomaz Lavieri
Aulão de JPA com Tomaz Lavieri
Elenilson Vieira
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias Web
Elenilson Vieira
 
JavaEE
JavaEEJavaEE
JavaME no Mercado Mobile
JavaME no Mercado MobileJavaME no Mercado Mobile
JavaME no Mercado Mobile
Elenilson Vieira
 
JavaFX 1.2
JavaFX 1.2JavaFX 1.2
JavaFX 1.2
Elenilson Vieira
 
Apresentação da Doom
Apresentação da DoomApresentação da Doom
Apresentação da Doom
Elenilson Vieira
 
Palestra sobre a Sun
Palestra sobre a SunPalestra sobre a Sun
Palestra sobre a Sun
Elenilson Vieira
 
Apresentação da RedeSoft
Apresentação da RedeSoftApresentação da RedeSoft
Apresentação da RedeSoft
Elenilson Vieira
 
Java Collections - Tomaz Lavieri
Java Collections - Tomaz LavieriJava Collections - Tomaz Lavieri
Java Collections - Tomaz Lavieri
Elenilson Vieira
 
A Sun no Meio Acadêmico - IESP/FatecPB
A Sun no Meio Acadêmico - IESP/FatecPBA Sun no Meio Acadêmico - IESP/FatecPB
A Sun no Meio Acadêmico - IESP/FatecPB
Elenilson Vieira
 
Mini-Curso de Sockets no Unipê
Mini-Curso de Sockets no UnipêMini-Curso de Sockets no Unipê
Mini-Curso de Sockets no Unipê
Elenilson Vieira
 
JavaME
JavaMEJavaME
Concorrência com Java
Concorrência com JavaConcorrência com Java
Concorrência com Java
Elenilson Vieira
 
Programas Acadêmicos da Sun no Unipê
Programas Acadêmicos da Sun no UnipêProgramas Acadêmicos da Sun no Unipê
Programas Acadêmicos da Sun no Unipê
Elenilson Vieira
 
Mundo Livre e Aberto
Mundo Livre e AbertoMundo Livre e Aberto
Mundo Livre e Aberto
Elenilson Vieira
 
JavaME - Aula 2
JavaME - Aula 2JavaME - Aula 2
JavaME - Aula 2
Elenilson Vieira
 
JavaME - Aula 1
JavaME - Aula 1JavaME - Aula 1
JavaME - Aula 1
Elenilson Vieira
 
Apostila JavaME
Apostila JavaMEApostila JavaME
Apostila JavaME
Elenilson Vieira
 
Threads
ThreadsThreads
Sincronização - Glêdson Elias
Sincronização - Glêdson EliasSincronização - Glêdson Elias
Sincronização - Glêdson Elias
Elenilson Vieira
 

Mais de Elenilson Vieira (20)

Aulão de JPA com Tomaz Lavieri
Aulão de JPA com Tomaz LavieriAulão de JPA com Tomaz Lavieri
Aulão de JPA com Tomaz Lavieri
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias Web
 
JavaEE
JavaEEJavaEE
JavaEE
 
JavaME no Mercado Mobile
JavaME no Mercado MobileJavaME no Mercado Mobile
JavaME no Mercado Mobile
 
JavaFX 1.2
JavaFX 1.2JavaFX 1.2
JavaFX 1.2
 
Apresentação da Doom
Apresentação da DoomApresentação da Doom
Apresentação da Doom
 
Palestra sobre a Sun
Palestra sobre a SunPalestra sobre a Sun
Palestra sobre a Sun
 
Apresentação da RedeSoft
Apresentação da RedeSoftApresentação da RedeSoft
Apresentação da RedeSoft
 
Java Collections - Tomaz Lavieri
Java Collections - Tomaz LavieriJava Collections - Tomaz Lavieri
Java Collections - Tomaz Lavieri
 
A Sun no Meio Acadêmico - IESP/FatecPB
A Sun no Meio Acadêmico - IESP/FatecPBA Sun no Meio Acadêmico - IESP/FatecPB
A Sun no Meio Acadêmico - IESP/FatecPB
 
Mini-Curso de Sockets no Unipê
Mini-Curso de Sockets no UnipêMini-Curso de Sockets no Unipê
Mini-Curso de Sockets no Unipê
 
JavaME
JavaMEJavaME
JavaME
 
Concorrência com Java
Concorrência com JavaConcorrência com Java
Concorrência com Java
 
Programas Acadêmicos da Sun no Unipê
Programas Acadêmicos da Sun no UnipêProgramas Acadêmicos da Sun no Unipê
Programas Acadêmicos da Sun no Unipê
 
Mundo Livre e Aberto
Mundo Livre e AbertoMundo Livre e Aberto
Mundo Livre e Aberto
 
JavaME - Aula 2
JavaME - Aula 2JavaME - Aula 2
JavaME - Aula 2
 
JavaME - Aula 1
JavaME - Aula 1JavaME - Aula 1
JavaME - Aula 1
 
Apostila JavaME
Apostila JavaMEApostila JavaME
Apostila JavaME
 
Threads
ThreadsThreads
Threads
 
Sincronização - Glêdson Elias
Sincronização - Glêdson EliasSincronização - Glêdson Elias
Sincronização - Glêdson Elias
 

Último

História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 

Último (8)

História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 

Desenvolvimento

  • 1. Desenvolvimento Elenilson Vieira elenilson.vieira.filho@gmail.com
  • 2. Usando o javac • javac [options] [source files] • Exemplos: – javac – help – javac –classpath com:. –g Foo.java Bar.java
  • 3. Usando o javac • Opção –d – Permite que você defina um diretório para seus .class • javac –d ../classes MyClass.java – Se o diretório destino não existir, o compilador mostrará um erro
  • 4. Usando o java • java [options] class [args] – [options] e [args] são opcionais e podem ter múltiplos argumentos – Não precisa especificar o “.class”
  • 5. Usando as Propriedades do Sistema • Pode ser usada para acessar uma informação persistente do sistema – Java Virtual Machine, Sistema Operacional, etc • Você pode adicionar ou recuperar suas próprias propriedades – java –DmyProp=MyValue Class a 1
  • 6. Usando as Propriedades do Sistema • Se o valor tiver espaços, esse deve ter aspas – java –DcmdProp=“cmdVal take 2” TestProps • Você pode adicionar e recuperar suas propriedades usando setProperty(String key, String value) e getProperty(String key) • getProperty retorna uma propriedade como String
  • 7. Usando as Propriedades do Sistema Properties p = System.getProperties(); p.setProperty(quot;myPropquot;, quot;myValuequot;); p.getProperty(“os.name”)
  • 8. Argumentos de Linha de Comando • public static void main(String args[]){} – args contém os argumentos passados no java para a classe • Exemplo – java MyClass x eu • args[0] = x • args[1] = eu
  • 9. Procurando por outras Classes • Quando usamos o java e javac, na maioria dos casos queremos que ele ache outras classes • Classes do JSE – Pacotes: • java.lang • java.util
  • 10. Procurando por outras Classes • Ambos tem uma lista de locais que procuram por outras classes • Se achar duas ou mais classes com o mesmo nome, ambos usam a que primeiro achar • Primeiro vão no diretório do JSE
  • 11. Procurando por outras Casses • Depois procuram no diretório definido pelo classpath • O classpath pode ser definido. Se não for definido é usado o definido pela variável de ambiente do Sistema
  • 12. Classpath • Consiste em um número variável de locais de diretórios separados por delimitadores – / no Unix – no Windows r • Separador de locais –:
  • 13. Classpath • Exemplo – classpath /home/eu:/var/www – Especifica dois diretórios a se procurar • /home/eu • /var/www • Quando especifica um diretório não está especificando os acima dele – /home ou /var • Pode-se usar apenas [-cp]
  • 14. Classpath • Quando especificamos o classpath o java e javac não mais procuram no diretório corrente • Coloca-se um ponto – classpath /home/elenilson:/var/www:. • A ordem dos diretórios importa
  • 15. Classpath • O diretório passado tem que – Absoluto – Relativo ao diretório corrente
  • 16. Pacotes • O nome do pacote não pode ser subdividido • Pode-se usar uma classe – Colocando seu nome totalmente qualificado • com.foo.MyClass = ... – Colocando uma declaração import e usando seu nome falso
  • 18. Java Archive (JAR) • Criar – jar –cf MeuJar.jar meuDiretório – Cria o JAR MeuJar.jar com a aplicação do diretório meuDiretório • Listar conteúdo – jar –tf MeuJar.jar
  • 19. Java Arquive (JAR) • Procurar arquivos em pacotes do jar é semelhante • Basta incluir no final do classpath o nome do jar – javac –cp ws/MeuJar.jar Exemplo.java
  • 20. jre/lib/ext com JAR • java e javac utilizam esse diretório para encontrar classes que sua aplicação precisa • Isso é definido por padrão • Se você colocar um jar dentro desse diretório, vai poder usar as classes do jar sem necessitar do classpath
  • 21. Import estático • É usado quando você quer utilizar os membros estáticos de uma classe • Cuidado com ambiguidades – Se você fizer import estático de um Integer e um Long e usar MAX_VALUE, o compilador não saberá de quem é e acusará um erro.