Capitulo 10 Kathy Sierra!{dúvida em quase tudo ...}

Caras eu não consigo entender esse capitulo :frowning: eu não entendo -d, -D, -cp… (- classpath)
por favor alguem passa um codigo bem fácil sobre ele para mim entender eu não entendo !!!

Calma calma calma

a opção -d é o seguinte

javac -d class System\S1.java

Compila a classe S1 do pacote System. Normal até aqui. Com a opção -d ele coloca o arquivo S1.class dentro do diretório
class\System\S1.class (ele cria um dir para os pacotes dentro do diretório class). -d de DESTINATION ou destino.

package System;


import java.util.*;


public class S1 {

	public static void main(String[] args){
		Properties p = System.getProperties();
		p.setProperty("GK","is the man"); //ignorem a frase :)
		p.list(System.out);

	}
	
}

Esse programa cria um system property chamado GK com valor “is the man”. A opção -D cria um system property via linha de comando. faça o teste e execute java -Dteste=teste System.S1

Na lista de propriedades do sistema você vai ver tanto a propriedade teste quanto a propriedade GK e seus respectivos valores

[]s
Gunnar

por que eu tenho que compilar usando java -Dteste=teste System.S1 isso que eu não to entendo !

A opção -cp (classpath) é uma opção para você dizer à JVM ONDE ela tem que procurar pelos arquivos .class necessários à sua aplicação.

Coloque esse código em um diretório qualquer.

public class T{

	public static void main(String[] args){
		new A();
		System.out.println("A");
		System.out.println("T");

	}

}

Dentro do diretório onde você criou esse arquivo crie um subdiretório chamado “a” e coloque esse código lá dentro

public class A{}

Compile a classe A

Agora tente compilar a classe T. Não compila.

Agora digite javac -cp a *.java no diretório onde esta o arquivo T.java
você vai reparar que agora compilou e sem a inclusão de import no código. Isso porque a opção cp diz à JVM onde o arquivo A.class tem que estar.

[]s
Gunnar

Essa forma de EXECUTAR é quando você quer criar uma propriedade no sistema via linha de comando. Se você tiver uma aplicação que registra ou lê algo do sistema isso é uma forma de criar a propriedade. Outra forma é criar via código, igual foi feito com a propriedade GK.

[]s
Gunnar

tentei executar java -Dteste=teste System.S1
e não conseguir da erro falando que não encontro o main
o que se que e´

[quote=Raff]tentei executar java -Dteste=teste System.S1
e não conseguir da erro falando que não encontro o main
o que se que e´[/quote]

Você colocou o arquivo S1.java dentro do diretório System? Porque a classe S1 pertence ao pacote System. Para isso o diretório superior tem que ser System.

[]s
Gunnar

nossa eu não sei por que eu to com tanta dificuldade nisso cara !! tah muito dificil para mim!

Por favor pessoal me ajude igual o gunnar fez :smiley: eu não to conseguindo entender :slight_smile: valew !

Raff

Explica denovo o que você esta com dificuldade…

[]s
Gunnar

eu não consigo entender como usar -D… e isso -d e tbm o -cp … por mais que você me explicou gunnar eu não to conseguindo visualizar isso muito bem :frowning: perdão a ignorancia!

Tenta “compilar” com linha de prompt e vc vai entender -.-

Ralf o capitulo 10 é meio obscuro mesmo. Aconselho tu ir pra prática q vai te clarear. Ta acontecendo isso comigo tbm. Mas já deu uma clareadazinha. Mas não muito.

-D define uma propriedade.
-d define o diretório onde serão criados os .class
-cp define o classpath

Qual a dificuldade?

shuenemann é que eu nunca tinha usado isso antes cara mas eu to apanhando !

hehe eu fiz o exame sem saber isso… apenas tentei aprender o -classpath e o -d pq sabia que ia aparecer umas 2 questoes a respeito… e tb a parte teorica q tem nesse cap sobre jar.

Bom -d significa destino aonde seu .class vai. So aprendi isso apos o exame estudando servlet e jsp… head first… auhuha

um exemplo:

lei isso assim: coloque meu .class dentro do diretorio classes que está um nivel antes.

hieraquia:

c:\exemplo\classes
c:\exemplo\src

no prompt vc deve estar em
c:\exemplo
e digitar:

agora a respeito do classpath eu acho ele meio confuso ate hj e prefiro configurar as variaveis de ambiente… no exame eu chutei…

flw! espero ter ajudado

ajudo sim cara :slight_smile: eu vou fazer isso tbm chuta :slight_smile: !!!

melhor coisa :smiley:

Tudo bem, é que você não diz exatamente o que não entendeu :mrgreen:

Olá galera!!!

Alguém tem interresse em trocar o livro,
Java: Como Programar - HARVEY M. DEITEL & PAUL J. DEITEL 6 edição (novo) , pelo livro de certificação SCJP: Certificação Sun para Programador Java 5 - Guia de Estudo?

Estou precisando para certificação.

Valeu!