给定以下目录结构:
的x |
|- GoDeep.class |
|- test-|
|- MyJar.jar |
|- myApp-|
|-Foo.java
|-Foo.class
并给出了GoDeep.java和Foo.java的内容:
3. public class GoDeep {
4. public static void main(String[] args) {
5. System.out.println(myApp.Foo.d);
6. }
7. }
3. package myApp;
4. public class Foo { public static int d = 8; }
MyJar.jar包含以下条目:
对myApp /让Foo.class
如果当前目录是x,哪些命令将成功执行GoDeep.class和 产生输出8? (选择所有适用的选项。)
一个。 java GoDeep
B中。 java -classpath。 GoDeep
℃。 java -classpath test / MyJar.jar GoDeep
d。 java GoDeep -classpath test / MyJar.jar
电子。 java GoDeep -classpath test / MyJar.jar:。
F。 java -classpath。:test / MyJar.jar GoDeep
-G。 java -classpath test / MyJar.jar: GoDeep
我认为答案应该是B)F)和G)。然而,书中说F)和G)。我知道当我们使用“java”时,必须在类路径中检查两个文件(GoDeep和Foo)作为默认值(即x)。而在“javac”的情况下,它只会搜索需要的文件(Foo)来执行我们的原始文件(GoDeep);未在类路径中搜索原始文件。如果我错了,请纠正我。
在选项B)中,我们使用了“java -classpath.GoDeep”,我们当前的目录是x。然后使用(。)它将检查当前目录。在这种情况下,两个文件在x目录中都可用,那么为什么它的选项不正确?
提前致谢。问题来自SCJP6