我正在编写编译各种VB6项目的java代码。我使用正确的命令创建cmd.exe Process Builder并执行它。我的问题是我编译的项目打开了需要手动关闭的窗口,与使用过的API +编译错误相关联。有没有办法让这些窗口不会弹出或者至少自动关闭它们,无论是通过java代码还是cmd提示符中的特殊VB6.EXE命令?
编辑:代码:
ProcessBuilder builder;
builder = new ProcessBuilder("cmd.exe", "/c",
"cd \"C:\\Program Files\\Microsoft Visual Studio\\VB98\" && VB6.EXE /m "
+ project.getPathToProject() + " /outdir " + outputPath + " && exit");
File outputDir = new File(outputPath);
if (!outputDir.exists()) {
outputDir.mkdirs();
}
builder.redirectErrorStream(true);
Process p = builder.start();
BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line;
while (true) {
line = r.readLine();
if (line == null) {
break;
}
System.out.println(line);
}
p.waitFor();
int exit = p.exitValue();
UPDATE: / out命令有助于处理错误窗口,但我仍然在编译过程中得到了关于'窗口'的ComponentOne(我假设的项目中使用的API)。
答案 0 :(得分:3)
如果打开命令提示符并导航到该文件夹,然后运行“VB6 /?”,您将看到一个弹出窗口,显示您可以使用的命令行参数。
你感兴趣的是/ out参数。根据文件:
/ out filename - 指定在构建时接收错误的文件 使用/ m或/ runexit。如果不使用/ out,则命令行构建 错误显示在消息框中。