0

我正在编写编译各种 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();

更新: /out 命令有助于错误窗口,但在编译期间我仍然得到 ComponentOne 的“关于”窗口(我认为项目中使用的 API)。

4

1 回答 1

3

如果您打开命令提示符并导航到该文件夹​​,然后运行“VB6 /?”,您将看到一个弹出窗口,其中显示您可以使用的命令行参数。

您感兴趣的是 /out 参数。根据文档:

/out 文件名 - 指定在您使用 /m 或 /runexit 构建时接收错误的文件。如果不使用 /out,命令行构建错误将显示在消息框中。

于 2013-09-11T00:15:15.983 回答