有一个shell脚本,用于编译/执行多个Java应用程序并捕获每个应用程序的输出。到文件。
该脚本运行正常,直到遇到一系列需要通过Java中的Scanner类输入的应用程序。
我想到的一件事是在.java文件中搜索关键字“Scanner”并跳过这些文件。
有关如何使用普通ole shell脚本克服此问题的任何其他建议?源无法修改。
(请不要蚂蚁,maven或其他构建经理)
答案 0 :(得分:0)
您可以使用不构建的自定义实现覆盖Scanner。例如:
目录结构:
/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.