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 ファイルは games フォルダー (jar ファイルの内側または外側) にある必要があります。

Cが正解です。

*.jar をクラスパスに渡すことができないため、G は不正解です。また、Games.jar が明示的にクラスパスにあったとしても、マニフェストはここでは何の役割も果たしません。

クラスパスに関するドキュメントについては、http://docs.oracle.com/javase/6/docs/technotes/tools/windows/classpath.htmlを参照してください。

于 2013-06-29T07:04:38.067 に答える