java — управляет запуском jars через ShellExecuteEx

у нас есть проект Java. У этого есть 5 команд CLI, которые указывают на Project.jar

они идут что-то вроде

  1. пример сервера: это процесс сервера, который продолжает работать в CMD и не закрывается.

  2. пример клиентского агента: это клиентский процесс, который продолжает работать во втором CMD и не закрывается. Это не может начаться, пока «пример сервера» не запустился полностью.

3, 4, 5: это следующие команды, такие как «пример входа в систему, … пример записи» и т. Д., Которые можно запустить в одном cmd. Они не могут начаться до тех пор, пока «пример сервера» и «пример клиента» не запустятся полностью.

Теперь я пытаюсь запустить все эти банки через исполняемый файл C ++

Я не мог использовать shell execute, так как, если бы я дал shellexecute для каждой из команд java -jar, они все выполнялись одновременно (чего я не хочу). Поэтому я использую ShellExecuteEx примерно так:

 SHELLEXECUTEINFO A= { 0 };
A.cbSize = sizeof(SHELLEXECUTEINFO);
A.fMask = SEE_MASK_NOCLOSEPROCESS;
A.hwnd = NULL;
A.lpVerb = NULL;
A.lpFile = L"\\java.exe";
A.lpParameters = L"-jar";
A.lpDirectory = NULL;
A.nShow = SW_SHOW;
A.hInstApp = NULL;
ShellExecuteEx(&A);
WaitForSingleObject(A.hProcess, 20000);

SHELLEXECUTEINFO B= { 0 };
B.cbSize = sizeof(SHELLEXECUTEINFO);
B.fMask = SEE_MASK_NOCLOSEPROCESS;
B.hwnd = NULL;
B.lpVerb = NULL;
B.lpFile = L"\\java.exe";
B.lpParameters = L"-jar";
B.lpDirectory = NULL;
B.nShow = SW_SHOW;
B.hInstApp = NULL;
ShellExecuteEx(&B);
WaitForSingleObject(B.hProcess, 20000);SHELLEXECUTEINFO C= { 0 };
C.cbSize = sizeof(SHELLEXECUTEINFO);
C.fMask = SEE_MASK_NOCLOSEPROCESS;
C.hwnd = NULL;
C.lpVerb = NULL;
C.lpFile = L"\\java.exe";
C.lpParameters = L"-jar";
C.lpDirectory = NULL;
C.nShow = SW_SHOW;
C.hInstApp = NULL;
ShellExecuteEx(&A);
WaitForSingleObject(C.hProcess, 10000);

Теперь я знаю, что жесткое программирование времени не является хорошей практикой. Могу ли я сделать что-то такое, что C будет выполняться после запуска A и B?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]