一个名为Bob的UNIX用户想用一个新的国际象棋程序替换它的象棋程序,但是他不确定旧的象棋程序安装在哪里。 Bob现在能够使用以下命令从其主目录/ home / bob运行Java Chess程序:java -classpath /test:/home/bob/downloads/*.jar games.Chess
Bob的CLASSPATH设置为(登录时):/usr/lib:/home/bob/classes:/opt/java/lib:/opt/java/lib/*.jar
Chess.class文件的可能位置在哪里?
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)
Answer is C but I want to know how it is ...........
最佳答案
类路径被显式传递给java命令,因此它取代了CLASSPATH环境变量。因此答案B,D,E和F是不正确的。
A是不正确的,因为类名是games.Chess
。由于程序包和目录结构必须匹配,因此Chess.class文件必须位于游戏文件夹(jar文件的内部或外部)中。
C是正确的。
G不正确,因为您不能将* .jar传递给类路径。即使Games.jar显式位于类路径中,清单也不在这里发挥任何作用。
有关类路径的文档,请参见http://docs.oracle.com/javase/6/docs/technotes/tools/windows/classpath.html。