2017-10-14 61 views
0

我似乎無法從終端執行我的java類 - 錯誤:無法找到或加載主類BinarySearch。從終端執行Java - 帶輸入文件的二進制搜索

我正在從我的兩個文本文件所在的目錄中的終端執行java代碼。

Java代碼我試圖執行:

public class BinarySearch { 

public static int rank(int[] a, int key) { 

    int lo = 0; 
    int hi = a.length - 1; 

    while (lo <= hi) { 

     int mid = lo + (lo + hi)/2; 
     if (key < a[mid]) { 
      hi = mid - 1; 
     } 
     else if (key > a[mid]) { 
      lo = mid + 1; 
     } else { 
      return mid; 
     } 
    } return -1; 

} 



public static void main(String[] args) { 

    In in = new In(args[0]); 

    int[] whitelist = in.readAllInts(); 

    Arrays.sort(whitelist); 

    while (!StdIn.isEmpty()) { 
     int key = StdIn.readInt(); 
     if (BinarySearch.rank(whitelist, key) == -1); 
      StdOut.println(key); 
    } 

} 
} 

我的Java文件不位於同一目錄中,這是我能想象的問題,但我不知道如何執行。

我在終端執行的CMD:

java的二分查找tinyW.txt < tinyT.txt

請讓我知道如果有什麼不明確。

感謝

回答

0

我在寫這個答案假設你已經成功地編譯BinarySearch.java和BinarySearch.class在於一些其他目錄。 我覺得有用提幾個點這裏 - 的

  1. java程序需要路徑的.class文件(在這種情況下BinarySearch.class)包含main()的存根,而不是給它一類的java文件(BinarySearch.java)。

  2. 如果您的cwd與您保存BinarySearch.class的目錄不同,那麼您需要提供該文件的路徑作爲java程序的參數。

    $ java的路徑/到/ BinarySearch的tinyW.txt < tinyT.txt

我希望這將解決您的問題。

+0

謝謝你的迴應! 我編譯的BinarySearch.java在終端與外部庫: 的javac -cp路徑/要/庫BinarySearch.java 我然後再次運行該代碼: 桌面菲利普$ java的BinarySearch.class tinyT .txt> tinyW.txt 要嘗試消除目錄中的錯誤,我已將所有內容移至桌面 - .txt文件和BinarySearch.class。 我仍然收到錯誤:無法找到或加載主類。 – philsegut

+0

編輯:我的一般問題 - 我試圖創建一些簡單的java代碼,並試圖編譯和運行我終端,但不起作用。我會更加註意並回來! – philsegut

+0

當然。只需通過網絡抓取任何教程並使用該編譯。 –