-1

我想在 Windows 中单击按钮时打开一个 .jar 文件。我有以下代码:

private: System::Void btnStartServer_Click(System::Object^  sender, System::EventArgs^  e) {
    STARTUPINFO si;
    PROCESS_INFORMATION pi;
    int spi=sizeof(pi);
    int ssi= sizeof(si);
    ZeroMemory( &si, sizeof(si) );
    si.cb=sizeof(STARTUPINFO); //sizeof(si);
    ZeroMemory( &pi, sizeof(pi) );

    char b = 0;
    b = CreateProcess("C:\\Program Files\\Java\\jre7\\bin\\java.exe ", "-jar craftbukkit.jar", NULL, NULL, 0, CREATE_NO_WINDOW, NULL, NULL, &si, &pi);

    btnStartServer->Text = String::Format(L"{0}", b);
}

但是当我按下按钮时,按钮的文本变为“1”,但我在 Task Menager 中没有看到任何名为“java”的进程。

如果您知道如何打开、读取输出并向 .jar 文件提供输入/从 .jar 文件中提供输入,如果您回答:如何使用 C++ 打开、读取输出和向 .jar 文件提供输入,我将不胜感激?.

任何帮助,将不胜感激。

4

1 回答 1

0

我终于设法修复它!我只需要在第二个参数中添加一些东西CreateProcess

b = CreateProcess("C:\\Program Files\\Java\\jre7\\bin\\java.exe ", "java -Xms1024M -Xmx1024M -jar craftbukkit.jar -o true", NULL, NULL, 0, CREATE_NO_WINDOW, NULL, NULL, &si, &pi);
于 2013-03-13T19:09:11.803 回答