2016-09-14 100 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