1

一位名叫 Bob 的 UNIX 用户想用一个新程序替换他的国际象棋程序,但他不确定旧程序的安装位置。Bob 目前能够使用以下命令从他的主目录 /home/bob 开始运行 Java 国际象棋程序:

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 ...........
4

1 回答 1

6

类路径显式传递给 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

于 2013-06-29T07:04:38.067 回答