2016-09-14 98 views
0

有一個編譯/執行多個Java應用程序並捕獲每個應用程序輸出的shell腳本。到一個文件。

腳本工作正常,直到遇到一系列需要通過Java中的Scanner類輸入的應用程序。bash腳本運行使用掃描器的Java應用程序

我想過的一件事是grep關鍵字「掃描儀」的.java文件並跳過這些文件。

有關如何使用plain ole shell腳本解決此問題的其他建議?源不能修改。

(沒有螞蟻,行家或其他構建經理請)

+0

你應該通過stdin發送相關的輸入。 – SLaks

+0

你會如何知道輸入類型? (int,String,boolean,byte)...每個應用程序的設計都是不同的。 – user1798810

+1

如果你不知道你的應用需要什麼輸入,你就沒有希望使它工作。 – SLaks

回答

0

您可以覆蓋與不建立一個自定義的實現掃描儀。例如:

目錄結構:

/Tester.java 
/java/util/Scanner.java 

然後,裏面Tester.java您有:

import java.util.Scanner: 

class Tester { 
     public static void main(String[] args) { 
       Scanner scanner = new Scanner(System.in); 
       System.out.println(scanner.nextLine()); 
     } 
} 

而且裏面Scanner.java您有:

I'm Broken! 

當然,「我破!」不會編譯,所以你的程序會中斷。所以,當你編譯你會最終出現這個錯誤:

./java/util/Scanner.java:1: error: unclosed character literal 
I'm Broken! 
^ 
Tester.java:1: error: cannot access Scanner 
import java.util.Scanner; 
       ^
    bad source file: ./java/util/Scanner.java 
    file does not contain class java.util.Scanner 
    Please remove or make sure it appears in the correct subdirectory of the sourcepath. 
+0

的解決方案。謝謝。 – user1798810