bash脚本运行使用Scanner的Java应用程序

时间:2016-09-14 19:54:23

标签: java bash

有一个shell脚本,用于编译/执行多个Java应用程序并捕获每个应用程序的输出。到文件。

该脚本运行正常,直到遇到一系列需要通过Java中的Scanner类输入的应用程序。

我想到的一件事是在.java文件中搜索关键字“Scanner”并跳过这些文件。

有关如何使用普通ole shell脚本克服此问题的任何其他建议?源无法修改。

(请不要蚂蚁,maven或其他构建经理)

1 个答案:

答案 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.