diff --git a/test/jdk/sun/management/jmxremote/startstop/JMXStatusTest.java b/test/jdk/sun/management/jmxremote/startstop/JMXStatusTest.java
index 1e6259ef0d73098e9cb3c348aa037a72a5e8ec76..fc1b4883220b6eead066a0c12d1f807135950d91 100644
--- a/test/jdk/sun/management/jmxremote/startstop/JMXStatusTest.java
+++ b/test/jdk/sun/management/jmxremote/startstop/JMXStatusTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2023, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -88,8 +88,6 @@ abstract public class JMXStatusTest {
         args.addAll(getCustomVmArgs());
         args.add(TEST_APP_NAME);
         testAppPb = ProcessTools.createTestJavaProcessBuilder(args);
-
-        jcmd = new ManagementAgentJcmd(TEST_APP_NAME, false);
     }
 
     @BeforeMethod
@@ -98,6 +96,7 @@ abstract public class JMXStatusTest {
             TEST_APP_NAME, testAppPb,
             (Predicate<String>)l->l.trim().equals("main enter")
         );
+        jcmd = new ManagementAgentJcmd(testApp, false);
     }
 
     @AfterMethod
diff --git a/test/jdk/sun/management/jmxremote/startstop/ManagementAgentJcmd.java b/test/jdk/sun/management/jmxremote/startstop/ManagementAgentJcmd.java
index 0781bc941fd46c0f39dfb1b7426698be26b89d57..7135f6ea2dba4c34ac2795b6673c1702085a3ddf 100644
--- a/test/jdk/sun/management/jmxremote/startstop/ManagementAgentJcmd.java
+++ b/test/jdk/sun/management/jmxremote/startstop/ManagementAgentJcmd.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2015, 2024, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -47,11 +47,11 @@ final class ManagementAgentJcmd {
     private static final String CMD_STATUS = "ManagementAgent.status";
     private static final String CMD_PRINTPERF = "PerfCounter.print";
 
-    private final String id;
+    private final long pid;
     private final boolean verbose;
 
-    public ManagementAgentJcmd(String targetApp, boolean verbose) {
-        this.id = targetApp;
+    public ManagementAgentJcmd(Process targetApp, boolean verbose) {
+        this.pid = targetApp.pid();
         this.verbose = verbose;
     }
 
@@ -174,7 +174,7 @@ final class ManagementAgentJcmd {
      * @throws InterruptedException
      */
     private String jcmd(Consumer<String> c, String ... command) throws IOException, InterruptedException {
-        return jcmd(id, c, command);
+        return jcmd(Long.toString(pid), c, command);
     }
 
     /**