Java Q基于包

gir*_*ani 1 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 ...........
Run Code Online (Sandbox Code Playgroud)

JB *_*zet 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.