java - 如何获取批处理文件以自动填充 Java 代码提示的输入
问题描述
我需要通过批处理文件为我的 java 类运行一系列测试用例,这样,当我运行批处理文件时,我的 java 代码运行 10 次,自动填充 java 类提示的输入。
该类要求三个输入,但我不知道如何让我的批处理脚本将变量输入到正在运行的 java 代码中。这是我到目前为止所得到的:
set PATH=C:\Program Files\Java\jdk-9.0.1\bin
del *.class
echo compiling
javac *.java
java tempconvtr
pause
解决方案
在 UNIX 中,您可以通过管道自动输入 java 程序。
假设您的 java 程序需要 3 个输入。您可以在执行 java 程序的批处理脚本中使用以下语法。
{ echo 'input1'; echo 'input2'; echo 'input3'; } | java -cp $CLASSPATH javaProgram
在 UNIX 中,管道方法有效:例如以下是 JAVA 程序,它从用户那里获取 3 个输入。
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner input = null;
try {
// creating a Scanner object
input = new Scanner(System.in);
System.out.println("Enter an integer: ");
// read an int value
int data1 = input.nextInt();
System.out.println("Using nextInt(): " + data1);
// read an int value
int data2 = input.nextInt();
System.out.println("Using nextInt(): " + data2);
// read an int value
int data3 = input.nextInt();
System.out.println("Using nextInt(): " + data3);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (input != null) {
input.close();
}
}
}
}
如果我们通常执行它,那么:
jdk/bin/java -cp . Main
Enter an integer:
1
Using nextInt(): 1
2
Using nextInt(): 2
3
Using nextInt(): 3
现在我正在输入管道:
{ echo '1'; echo '2'; echo '3'; } |jdk/bin/java -cp . Main
Enter an integer:
Using nextInt(): 1
Using nextInt(): 2
Using nextInt(): 3
在 Windows 上,以下是等效的方法:
D:\workspace_europa\DatastructureAndAlgorithms\src>
(echo 1& echo 2& echo 3) | d:\InstalledProgramms\Java\jdk1.5.0_22\bin\java -cp . Main
Enter an integer:
Using nextInt(): 1
Using nextInt(): 2
Using nextInt(): 3
推荐阅读
- c - 用c语言制作计算器
- python - 从文件中选择多个标准(“日期”标准的问题)
- c++ - Visual Studio 2019 中奇怪的宏扩展
- business-objects - 缩放 webi 报告值
- highcharts - Highcharts 共享工具提示多个 Y 轴
- python - “python -m venv env”与“python3 -m venv env”
- c# - 使用此构造测试 null 或空字符串:s 为 null 或 ""
- azure-devops - 列出 ADO 项目中组内的组
- wordpress - 类别 slug - 自定义帖子类型 Wordpress
- amazon-web-services - 仅允许从 IAM 策略访问 AWS S3 中的单个文件