Как запустить независимый процесс, а не процесс-потомок?

Как можно запустить Minecraft в отдельном процессе, а не в подпроцессах исполняемого кода после передачи аргументов в Java код и нажатия кнопки? Скриншот является дополнительной информацией.
  • 10 марта 2024 г. 23:28
Ответы на вопрос 2
Для запуска независимого процесса в Java можно воспользоваться классом ProcessBuilder. Пример кода для запуска Minecraft в отдельном процессе выглядит следующим образом:

```java
import java.io.File;
import java.io.IOException;

public class MinecraftLauncher {

    public static void main(String[] args) {
        try {
            ProcessBuilder pb = new ProcessBuilder("java", "-jar", "Minecraft.jar");
            pb.directory(new File("путь_к_папке_с_Minecraft.jar"));
            Process p = pb.start();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
```

При запуске данного кода, Minecraft будет запущен в отдельном процессе. Убедитесь, что путь к папке с Minecraft.jar указан корректно.

Чтобы передать аргументы, вы можете добавить их в массив строк в конструктор ProcessBuilder, например:

```java
ProcessBuilder pb = new ProcessBuilder("java", "-jar", "Minecraft.jar", "аргумент1", "аргумент2");
```

После выполнения этого кода, Minecraft будет запущен в отдельном процессе при нажатии кнопки или выполнении другого события в вашем приложении.

Как только вы запустите этот код, Minecraft должен быть запущен в отдельном процессе, отображаемом в списке процессов операционной системы.
Судя по картинке, речь идет про Windows, поэтому ответ будет тоже чисто для Windows. 
Сылка на процесс, запустивший данный (типа, на родительский) хоанится в структуре ядра, описывающий сам процесс - и, на самом деле, практически ни на что не влияет. Но если вам так хочется запустить процесс без родителя, запустите промежуточный процесс, запустите из него нужный вам процесс и завершите промежуточный процесс.
Похожие вопросы