【发布时间】:2015-01-15 17:32:06
【问题描述】:
我有下面的代码
public class prob01 {
public static void main (String arg[]) {
System.out.println(arg[0]);
}
}
我在同一目录中有一个文本文件 prob01.txt,其中包含:
StackOverflow StackExchange
当我将参数作为 prob01.txt 如下所示时,如何从上面的代码中获得 StackOverflow 的输出:(我不想修改 java 代码,dos 必须小心解析文件并将内容作为参数发送)
C:\> javac prob01.java
C:\> java -cp . prob01 < prob01.txt
【问题讨论】:
-
“我不想修改 java 代码”——你必须这样做。您显示的命令提供文件内容作为标准输入,not 作为命令行参数。我认为 Windows 命令 shell 中没有任何东西可以读取文件并将其内容用作另一个命令的命令行参数。
-
我们没有
-
再次,将文件的文本重定向到标准输入,不到命令行参数。 (因此,如果您从
System.in阅读,您将获得内容。) -
您应该能够搜索正确的 dos 批处理文件命令以从文本文件中读取环境变量,然后将这些变量作为命令行参数运行。
-
大胆猜测,因为我正在运行 Linux,请参阅 stackoverflow.com/questions/5886334/… 从文件中创建变量
input。和java -cp . prob01 %input%以%input%作为参数运行Java?我不确定这是否有效......