kaj*_*igd 0 java command-line javac
我有一个名为的java文件MemoryComparison.java保存在文件夹中D:\Documents\CodeAnalysis\project_analysis_RG\CodeAnalysis\input\master\Kajari_G
我有另一个文件夹D:\Documents\CodeAnalysis\output\,我想在其中存储执行后上述java文件的输出。
在Java程序MemoryComparison.java中我没有给出任何包名称。
现在,我正在从另一个名为 的 java 程序编译并执行上述 java 程序ReadFilesInFolders.java。下面是代码片段:
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();
}
Run Code Online (Sandbox Code Playgroud)
现在,第一个 exec 工作正常,并且 .class 文件正在 MemoryComparison.java 所在的同一文件夹中生成。但似乎第二个执行程序无法工作,因为没有创建output1.txt。
但是当我从命令提示符运行上述两行时,一切正常并且正在创建output1.txt。
你能帮我解决这个问题吗?
试试这个代码。
Process proc = null;
try {
String command = "javac input\\master\\Kajari_G\\MemoryComparison.java";
// Similarly for this: "java -cp input\\master\\Kajari_G\\ MemoryComparison > output\\output1.txt" also
proc = Runtime.getRuntime().exec(new String[] { "/bin/sh"//$NON-NLS-1$
, "-c", command });//$NON-NLS-1$
if (proc != null) {
proc.waitFor();
}
} catch (Exception e) {
//Handle
return;
}
Run Code Online (Sandbox Code Playgroud)
在 Windows 上使用**cmd** exe路径而不是/bin/sh. **cmd** exe检查.c中是否支持-c命令行参数
| 归档时间: |
|
| 查看次数: |
20188 次 |
| 最近记录: |