Questão sobre classpath

4 respostas
T

A UNIX user named Bob wants to replace his chess program with a new one, but he is not sure where the old one is installed. Bob is currently able to run a Java chess program starting from his home directory /home/bob using the command:

java -classpath /test:/home/bob/downloads/*.jar games.Chess

Bob’s CLASSPATH is set (at login time) to:

/usr/lib:/home/bob/classes:/opt/java/lib:/opt/java/lib/*.jar

What is a possible location for the Chess.class file?

a) /test/Chess.class

b) /home/bob/Chess.class

c) /test/games/Chess.class

d) /usr/lib/games/Chess.class

e) /home/bob/games/Chess.class

f) inside jarfile /opt/java/lib/Games.jar (with a correct manifest)

g) inside jarfile /home/bob/downloads/Games.jar (with a correct manifest)

A resposta correta é a C, o que faz sentido para mim. Mas, porque a D também não é correta?

4 Respostas

rmala_ti

Acredito que a letra D não esteja correta pois o classpath de linha de comando em

substiui o classpath de usuário, então só será usado o classpath de linha de comando para executar o jogo.

Agora não entendi o motivo da letra A não estar correta, alguém sabe?

T

Acredito que a letra A não esteja correta pois o comando executado é games.Chess, e não apenas Chess, o que significa que, a partir do classpath, a JVM irá procurar pelo pacote (diretório) games e, somente depois (dentro do diretório games), procurar por Chess.

Mas não tenho 100% de certeza disso. É melhor alguém confirmar.

T

Aliás, essa questão do games.Chess VS Chess me leva em outra dúvida (ainda não respondida neste tópico: http://www.guj.com.br/posts/list/148911.java). Existe alguma forma de executar essa classe Chess sem fazer, em algum momento, games.Chess??

rmala_ti

TiagoTC:
Acredito que a letra A não esteja correta pois o comando executado é games.Chess, e não apenas Chess, o que significa que, a partir do classpath, a JVM irá procurar pelo pacote (diretório) games e, somente depois (dentro do diretório games), procurar por Chess.

Mas não tenho 100% de certeza disso. É melhor alguém confirmar.

Ah entendi cara.

nesse caso games eh um diretório e Chess é a classe a ser executada.

Criado 8 de janeiro de 2010
Ultima resposta 11 de jan. de 2010
Respostas 4
Participantes 2