Hm…
Ambas as questões são a respeito do Classpath (mas isso voce já sabe, hehe), e de que forma as classes serão encontradas durante a compilação/execução do programa.
No primeiro exemplo, é mostrado que a variavel de ambiente CLASSPATH está definida para determinados diretórios, porém o comando java foi executado com o parametro -classpath,
que sobrescreve a variavel de ambiente. Portanto, para essa execução em específico, o classpath será: /test:/home/bob/downloads/*.jar. O que isso significa? Que os arquivos
constantes nesses diretorios ( : é um separador no unix, no Windows seria ; ) estarão visíveis para a VM. Portanto creio que as respostas seriam:
A -> (INCORRETA) (o arquivo Chess.class existe, mas não coincide com games.Chess)
B -> (INCORRETA) (esse diretorio nao está no classpath da execução)
C -> (CORRETA) (repare que a classe executada é games.Chess. O diretorio /test está no classpath e a estrutura do diretorio coincide com games.Chess (nome do pacote deve coincidir com a estrutura dos diretorios))
D -> (INCORRETA) (pelo mesmo motivo que B. Repare que esse diretorio está na variavel de ambiente CLASSPATH, mas a variavel foi desconsiderada em função do parametro -classpath)
E -> (INCORRETA) (mesmo motivo que B)
F -> (INCORRETA) (esse jar nao nao está no classpath, pelo mesmo motivo que a opção D)
G -> (INCORRETA) (repare no parametro passado para o classpath: /home/bob/downloads/*.jar. Não é permitido selecionar todos os arquivos JAR de um diretorio dessa maneira, com o * (o Java6 permite de uma forma um pouco diferente). Portanto, esse jar tambem nao está no classpath)
No segundo exemplo, o cenário é a compilação do programa, que envolve as mesmas questões de classpath
A -> (INCORRETA) (esse diretorio, ainda que exista, não é incluído no classpath)
B -> (CORRETA) (todos os jars incluidos em $JAVA_HOME/jre/lib/ext/ estarão no classpath da compilação/execução, sempre. é um diretorio que serve para voce incluir qualquer jar que queira que esteja no classpath de qualquer execução aí na sua maquina)
C -> (INCORRETA) (a variavel de ambiente CLASSPATH deve indicar diretorios e/ou arquivos JARs, não um .class específico dentro de um jar)
D -> (CORRETA) (a variavel de ambiente CLASSPATH foi definida corretamente para incluir o JAR que contem o class necessario)
E -> (INCORRETA) (mesmo motivo de C. Repare que ele passa no comando javac o parametro -cp, que é a mesma coisa que o parametro -classpath)
F -> (INCORRETA) (uma pegadinha. repare que ele passa o JAR no parametro -d. esse parametro serve para determinar o destino do seu arquivo class compilado, e nao para definir o classpath)
G -> (CORRETA) (o jar que contem a classe necessaria foi passado corretamente no parametro -classpath)
Espero ter ajudado, e espero ter acertado tambem :lol: . Duvidas poste aí!