Java Q基于包

时间:2013-06-29 06:52:32

标签: java

名为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 ...........

1 个答案:

答案 0 :(得分: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