2013-11-22 89 views
0

我使用enthuware來練習類路徑和包的模擬問題。這是問題。Enthuware Mock-20混亂 - 類路徑和包

//in file ./Foo.java 
public class Foo { 
    public static void main(String[] args) { 
    System.out.println("In Foo"); 
    } 
} 

//in file ./com/Foo.java 
package com; 
public class Foo { 
    public static void main(String[] args) { 
    System.out.println("In com.Foo"); 
    } 
} 

Which of the given statements are correct assuming that the command lines are executed from the current directory with default classpath set to ./classes? 

給出的選項是

  1. 執行Java -classpath:./ COM美孚將打印 「在com.Foo」
  2. 執行Java -classpath ./com :. Foo將打印「In com.Foo」
  3. 執行java Foo將打印「In com.Foo」
  4. java -classpath。 com.Foo將不會執行。
  5. 執行java -classpath ./com :. com.Foo將打印「In com.Foo」

給出的正確選項是選項-5。奇怪的問題是,當我嘗試從我的命令行執行選項-5它給我以下錯誤。 Option-5 Execution Error

有人能告訴我什麼是錯的嗎?我無法弄清楚原因。再加上這個類路徑是什麼意思?

命令改變

我注意到一個奇怪的東西,如果我改變類路徑和

java -classpath . com.Foo 

它指出in com.Foo運行命令。只要我改變命令添加此路徑./com。它給出了上述錯誤。

謝謝。

回答

0

「./com」是當前路徑的相對路徑。

如果你有你在[的current_path]類/com/Foo.class

你可以用下面的命令來運行你的類:

java -classpath ./com com.Foo 

如果你在com文件夾[的current_path:您可以執行以下命令:

java -classpath . com.Foo