Capítulo 10 - Development II

3 respostas
deyvid
  1. Given the following directory structure:
x-|
	|- FindBaz.class
	|
	|- test-|
		    |- Baz.class
		    |
		    |- myApp-|
			         |- Baz.class

And given the contents of the related .java files:

public class FindBaz { public static void main(String[] args) { new Baz(); }}
In the test directory:

public class Baz { static { System.out.println("test/Baz"); } }
In the myApp directory:

public class Baz { static { System.out.println("myApp/Baz"); } }
If the current directory is x, which invocations will produce the output “test/Baz”? (Choose all that apply.)

A. java FindBaz B. java -classpath test FindBaz C. java -classpath .:test FindBaz D. java -classpath .:test/myApp FindBaz E. java -classpath test:test/myApp FindBaz F. java -classpath test:test/myApp:. FindBaz G. java -classpath test/myApp:test:. FindBaz

Não entendo por que B e E estão incorretas.

Desde já agradeço

3 Respostas

ribclauport

Quando você usa classpath, a jvm deixa de usar o classpath padrão, e desta forma ele não encontra a classe que está no diretório local, sendo assim as questões estão incorretas pelo motivo de não ter “.” na declaração do classpath.

Andersonrms

Mas o classpath tem q ser especificado msm q vc esteja no diretório em q a classe se encontra?

ribclauport

Na página 446 do guia para certificação" da Katy, esse detalhe aparece, mais realmente implementando os exemplos que a gente consegue ver a “diferença”.

Abaixo vamos analizar o que ela diz nesta página a respeito de dois classpaths, um com o “.” e outro sem o ponto.

-classpath /com/foo/acct : com/foo    
-classpath /com/foo/acct : com/foo:.

Quando você usa java para “rodar” o arquivo , se não usar classpath", realmente ele roda o arquivo que está no diretório local a partir do seu nome qualificado, certo?, mais quando você usa classpath com o comando java, ele não usa o classpath padrão, que é aquele estabelecido nas variáveis de ambiente, e você precisa “dizer” quais são as classes usadas, entre elas está a classe que contém o método main, que neste caso está no diretório local.

De qualquer forma o bom mesmo é montar a estrutura de diretório e usar os comandos, pois o texto é meio “confuso” e realmente causa dúvidas.

Criado 23 de abril de 2012
Ultima resposta 26 de abr. de 2012
Respostas 3
Participantes 3