【发布时间】:2014-03-21 10:41:37
【问题描述】:
我有一个名为MemoryComparison.java 的java 文件保存在D:\Documents\CodeAnalysis\project_analysis_RG\CodeAnalysis\input\master\Kajari_G 文件夹中
我有另一个文件夹D:\Documents\CodeAnalysis\output\,我想在其中存储上述java文件执行后的输出。
在 Java 程序 MemoryComparison.java 中我没有给出任何包名。
现在,我正在从另一个名为ReadFilesInFolders.java 的java 程序编译和执行上述java 程序。下面是代码sn-p:
try {
Runtime.getRuntime().exec("javac input\\master\\Kajari_G\\MemoryComparison.java");
Runtime.getRuntime().exec("java -cp input\\master\\Kajari_G\\ MemoryComparison > output\\output1.txt");
} catch (IOException e) {
e.printStackTrace();
}
现在,第一个 exec 工作正常,并且在 MemoryComparison.java 所在的同一文件夹中生成了 .class 文件。但似乎第二个 exec 没有工作,因为没有创建 output1.txt。
但是当我从命令提示符运行上述两行时,一切正常,并且正在创建 output1.txt。
你能帮我解决这个问题吗!
【问题讨论】:
-
需要空格,因为它在 -cp 参数之后。这个确切的命令在命令行中运行良好。
-
@kajarigd Runtime.exec() 只执行您提供的内容,而无需执行元字符和文件重定向。因此,">output/output1.txt" 没有意义。如果您打算用 Java 编写批处理文件或 shell 脚本,您将很难除非您学习了基础知识。但是,当你这样做时,你可能只会用 BAT、sh 或 perl 编写它。
标签: java command-line javac