我想在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文件提供输入,如果您回答:How To Open, Read Output and Give Input To a .jar file with C++?,我将不胜感激。
任何帮助都将不胜感激。
答案 0 :(得分: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);