diff --git a/test/jdk/java/net/InetAddress/ptr/Lookup.java b/test/jdk/java/net/InetAddress/ptr/Lookup.java
index 2b7e5b56acc92831d7461cc2a8958aed82ed2fbe..8deaf866ec16ab9892528ca265790b623e7a4f7b 100644
--- a/test/jdk/java/net/InetAddress/ptr/Lookup.java
+++ b/test/jdk/java/net/InetAddress/ptr/Lookup.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2002, 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2002, 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
@@ -41,18 +41,15 @@
 import java.io.IOException;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
-import java.util.List;
 import java.util.stream.Stream;
 import java.util.stream.Collectors;
 
-import jdk.test.lib.JDKToolFinder;
 import jdk.test.lib.process.OutputAnalyzer;
+import jdk.test.lib.process.ProcessTools;
 
 public class Lookup {
     private static final String HOST = "icann.org";
     private static final String SKIP = "SKIP";
-    private static final String CLASS_PATH = System.getProperty(
-            "test.class.path");
 
     public static void main(String args[]) throws IOException {
         String addr = null;
@@ -135,20 +132,16 @@ public class Lookup {
     }
 
     static String lookupWithIPv4Prefer() throws IOException {
-        String java = JDKToolFinder.getTestJDKTool("java");
         String testClz = Lookup.class.getName();
-        List<String> cmd = List.of(java, "-Djava.net.preferIPv4Stack=true",
-                "-cp", CLASS_PATH, testClz);
-        System.out.println("Executing: " + cmd);
-        return new OutputAnalyzer(new ProcessBuilder(cmd).start()).getOutput();
+        ProcessBuilder pb = ProcessTools.createTestJavaProcessBuilder(
+                "-Djava.net.preferIPv4Stack=true", testClz);
+        return new OutputAnalyzer(pb.start()).getOutput();
     }
 
     static String reverseWithIPv4Prefer(String addr) throws IOException {
-        String java = JDKToolFinder.getTestJDKTool("java");
         String testClz = Lookup.class.getName();
-        List<String> cmd = List.of(java, "-Djava.net.preferIPv4Stack=true",
-                                   "-cp", CLASS_PATH, testClz, "reverse", addr);
-        System.out.println("Executing: " + cmd);
-        return new OutputAnalyzer(new ProcessBuilder(cmd).start()).getOutput();
+        ProcessBuilder pb = ProcessTools.createTestJavaProcessBuilder(
+                "-Djava.net.preferIPv4Stack=true", testClz, "reverse", addr);
+        return new OutputAnalyzer(pb.start()).getOutput();
     }
 }
diff --git a/test/jdk/java/net/ServerSocket/AcceptCauseFileDescriptorLeak.java b/test/jdk/java/net/ServerSocket/AcceptCauseFileDescriptorLeak.java
index 5c9e7bf69906f85ae29989d207ae49be520c0b30..7626ec04c72430bb48a834ea06522d1914698634 100644
--- a/test/jdk/java/net/ServerSocket/AcceptCauseFileDescriptorLeak.java
+++ b/test/jdk/java/net/ServerSocket/AcceptCauseFileDescriptorLeak.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, 2019, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2006, 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
@@ -31,7 +31,8 @@
  *          can cause fd leak.
  *          This test may fail intermittently if foreign processes will
  *          try to establish connection to the test server socket.
- * @requires (os.family != "windows")
+ * @requires os.family != "windows"
+ * @requires vm.flagless
  * @library /test/lib
  * @build jdk.test.lib.Utils
  *        jdk.test.lib.Asserts
diff --git a/test/jdk/java/net/ServerSocket/AcceptInheritHandle.java b/test/jdk/java/net/ServerSocket/AcceptInheritHandle.java
index 81bf874f59373d3a3c345af63e91deadeee43ccc..96f09e4e0440eb0d96f8d06900c0babc62f502bf 100644
--- a/test/jdk/java/net/ServerSocket/AcceptInheritHandle.java
+++ b/test/jdk/java/net/ServerSocket/AcceptInheritHandle.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2019, 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
@@ -34,10 +34,12 @@ import java.net.*;
 import java.nio.channels.ServerSocketChannel;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.List;
 import java.util.concurrent.TimeUnit;
 import java.util.function.Supplier;
 import jdk.test.lib.net.IPSupport;
+import jdk.test.lib.process.ProcessTools;
 
 public class AcceptInheritHandle {
 
@@ -95,16 +97,12 @@ public class AcceptInheritHandle {
         System.out.println("\nStarting test for " + ssp.name());
 
         List<String> commands = new ArrayList<>();
-        commands.add(JAVA);
-        for (String arg : jvmArgs)
-            commands.add(arg);
-        commands.add("-cp");
-        commands.add(CLASSPATH);
+        Collections.addAll(commands, jvmArgs);
         commands.add("AcceptInheritHandle");
         commands.add(ssp.name());
 
         System.out.println("Executing: "+ commands);
-        ProcessBuilder pb = new ProcessBuilder(commands);
+        ProcessBuilder pb = ProcessTools.createTestJavaProcessBuilder(commands);
         pb.redirectError(ProcessBuilder.Redirect.INHERIT);
         Process serverProcess = pb.start();
         DataInputStream dis = new DataInputStream(serverProcess.getInputStream());
diff --git a/test/jdk/java/net/URLClassLoader/getresourceasstream/TestDriver.java b/test/jdk/java/net/URLClassLoader/getresourceasstream/TestDriver.java
index 526689e21ea16a1a102a7ac7943c32cd970c8fe4..a7cfae09c3ed297952733dccd791a24a0584cad7 100644
--- a/test/jdk/java/net/URLClassLoader/getresourceasstream/TestDriver.java
+++ b/test/jdk/java/net/URLClassLoader/getresourceasstream/TestDriver.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -36,7 +36,6 @@
  * @run main/othervm TestDriver
  */
 
-import jdk.test.lib.JDKToolFinder;
 import jdk.test.lib.process.ProcessTools;
 
 import java.io.IOException;
@@ -53,33 +52,33 @@ public class TestDriver {
             throws Throwable {
 
         Path userDir = Paths.get(System.getProperty("user.dir"));
-        String java = JDKToolFinder.getTestJDKTool("java");
         String basename = userDir.getFileName().toString();
         setup(userDir);
         ProcessBuilder[] tests = new ProcessBuilder[]{
-                new ProcessBuilder(
-                        java, TEST_NAME, "./" + ARCHIVE_NAME
+                ProcessTools.createTestJavaProcessBuilder(
+                        TEST_NAME,
+                        "./" + ARCHIVE_NAME
                 ),
-                new ProcessBuilder(
-                        java, "-cp", ".",
+                ProcessTools.createTestJavaProcessBuilder(
+                        "-cp", ".",
                         "-Djava.security.policy=file:./policy",
                         "-Djava.security.manager",
                         TEST_NAME, "./" + ARCHIVE_NAME
                 ),
-                new ProcessBuilder(
-                        java, "-cp", ".",
+                ProcessTools.createTestJavaProcessBuilder(
+                        "-cp", ".",
                         "-Djava.security.policy=file:./policy",
                         "-Djava.security.manager",
                         TEST_NAME, "./" + ARCHIVE_NAME
                 ),
-                new ProcessBuilder(
-                        java, "-cp", "..",
+                ProcessTools.createTestJavaProcessBuilder(
+                        "-cp", "..",
                         "-Djava.security.policy=file:../policy",
                         "-Djava.security.manager",
                         TEST_NAME, "../" + ARCHIVE_NAME
                 ).directory(userDir.resolve("tmp").toFile()),
-                new ProcessBuilder(
-                        java, "-cp", basename,
+                ProcessTools.createTestJavaProcessBuilder(
+                        "-cp", basename,
                         "-Djava.security.policy=file:" + basename + "/policy",
                         "-Djava.security.manager",
                         TEST_NAME, basename + "/" + ARCHIVE_NAME
diff --git a/test/jdk/java/net/URLClassLoader/sealing/CheckSealedTest.java b/test/jdk/java/net/URLClassLoader/sealing/CheckSealedTest.java
index b733b6788711f332689f3362201d807d393c796a..cb474645e45f1cccb45e870411e9dd229fd0e58c 100644
--- a/test/jdk/java/net/URLClassLoader/sealing/CheckSealedTest.java
+++ b/test/jdk/java/net/URLClassLoader/sealing/CheckSealedTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -46,6 +46,8 @@ import java.nio.file.Paths;
 import java.util.List;
 
 import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
+import static jdk.test.lib.process.ProcessTools.createTestJavaProcessBuilder;
+import static jdk.test.lib.process.ProcessTools.executeCommand;
 
 public class CheckSealedTest {
     private static final String ARCHIVE_NAME = "b.jar";
@@ -55,31 +57,30 @@ public class CheckSealedTest {
 
         String baseDir = System.getProperty("user.dir") + File.separator;
         String javac = JDKToolFinder.getTestJDKTool("javac");
-        String java = JDKToolFinder.getTestJDKTool("java");
 
         setup(baseDir);
         String srcDir = System.getProperty("test.src");
         String cp = srcDir + File.separator + "a" + File.pathSeparator
                 + srcDir + File.separator + "b.jar" + File.pathSeparator
                 + ".";
+
+        // Compile
+        ProcessTools.executeCommand(javac, "-cp", cp, "-d", ".",
+                srcDir + File.separator + TEST_NAME + ".java");
+
         List<String[]> allCMDs = List.of(
-                // Compile command
-                new String[]{
-                        javac, "-cp", cp, "-d", ".",
-                        srcDir + File.separator + TEST_NAME + ".java"
-                },
                 // Run test the first time
                 new String[]{
-                        java, "-cp", cp, TEST_NAME, "1"
+                        "-cp", cp, TEST_NAME, "1"
                 },
                 // Run test the second time
                 new String[]{
-                        java, "-cp", cp, TEST_NAME, "2"
+                        "-cp", cp, TEST_NAME, "2"
                 }
         );
 
         for (String[] cmd : allCMDs) {
-            ProcessTools.executeCommand(cmd)
+            executeCommand(createTestJavaProcessBuilder(cmd))
                         .outputTo(System.out)
                         .errorTo(System.out)
                         .shouldHaveExitValue(0);
diff --git a/test/jdk/java/net/URLConnection/6212146/TestDriver.java b/test/jdk/java/net/URLConnection/6212146/TestDriver.java
index d6bffb198de990e7e72e5917deb7acac814460ff..5f474759031b35932a23564fb6a77afcd410b318 100644
--- a/test/jdk/java/net/URLConnection/6212146/TestDriver.java
+++ b/test/jdk/java/net/URLConnection/6212146/TestDriver.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -27,6 +27,7 @@
  * @summary URLConnection.connect() fails on JAR Entry it creates
  * file handler leak
  * @library /test/lib
+ * @requires vm.flagless
  * @build jdk.test.lib.Utils
  *        jdk.test.lib.Asserts
  *        jdk.test.lib.JDKToolFinder
diff --git a/test/jdk/java/net/URLConnection/ContentHandlers/ContentHandlersTest.java b/test/jdk/java/net/URLConnection/ContentHandlers/ContentHandlersTest.java
index 49b2d7a6b64e001500eed08186bd81ce40ae6716..b15d5aca8ec7718621e4cf2e2d5a3fe605aaa68e 100644
--- a/test/jdk/java/net/URLConnection/ContentHandlers/ContentHandlersTest.java
+++ b/test/jdk/java/net/URLConnection/ContentHandlers/ContentHandlersTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 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
@@ -21,6 +21,8 @@
  * questions.
  */
 
+import jdk.test.lib.process.ProcessTools;
+
 import java.io.BufferedReader;
 import java.io.BufferedWriter;
 import java.io.File;
@@ -56,6 +58,7 @@ import static java.util.Collections.singletonMap;
 /*
  * @test
  * @bug 8064925
+ * @library /test/lib
  * @summary Basic test for ContentHandler. Ensures discovery paths for content
  *          handlers follow a particular order.
  */
@@ -268,14 +271,10 @@ public class ContentHandlersTest {
                                Collection<Path> classpath,
                                String classname, String... args) {
 
-        String java = getJDKTool("java");
-
-        List<String> commands = new ArrayList<>();
-        commands.add(java);
-        commands.addAll(properties.entrySet()
+        List<String> commands = properties.entrySet()
                 .stream()
                 .map(e -> "-D" + e.getKey() + "=" + e.getValue())
-                .collect(Collectors.toList()));
+                .collect(Collectors.toList());
 
         String cp = classpath.stream()
                 .map(Path::toString)
@@ -285,7 +284,7 @@ public class ContentHandlersTest {
         commands.add(classname);
         commands.addAll(Arrays.asList(args));
 
-        return run(new ProcessBuilder(commands));
+        return run(ProcessTools.createTestJavaProcessBuilder(commands));
     }
 
     private static Result run(ProcessBuilder b) {
diff --git a/test/jdk/java/net/httpclient/security/Driver.java b/test/jdk/java/net/httpclient/security/Driver.java
index 98094a6cdc925f5ace7d871599799cd810534912..fc3dc4346ffd4924dcdffb4bdfa1512cc40c4c88 100644
--- a/test/jdk/java/net/httpclient/security/Driver.java
+++ b/test/jdk/java/net/httpclient/security/Driver.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
@@ -56,6 +56,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 import jdk.test.lib.Utils;
+import jdk.test.lib.process.ProcessTools;
 
 /**
  * Driver for tests
@@ -126,12 +127,10 @@ public class Driver {
         String testClassPath = System.getProperty("test.class.path", "?");
         String testClasses = System.getProperty("test.classes", "?");
         String sep = System.getProperty("file.separator", "?");
-        String javaCmd = testJdk + sep + "bin" + sep + "java";
         int retval = 10; // 10 is special exit code denoting a bind error
                          // in which case, we retry
         while (retval == 10) {
             List<String> cmd = new ArrayList<>();
-            cmd.add(javaCmd);
             cmd.add("-ea");
             cmd.add("-esa");
             cmd.add("-Dtest.jdk=" + testJdk);
@@ -150,7 +149,7 @@ public class Driver {
             cmd.add("Security");
             cmd.add(testnum);
 
-            ProcessBuilder processBuilder = new ProcessBuilder(cmd)
+            ProcessBuilder processBuilder = ProcessTools.createTestJavaProcessBuilder(cmd)
                 .redirectOutput(ProcessBuilder.Redirect.PIPE)
                 .redirectErrorStream(true);
 
diff --git a/test/jdk/java/net/spi/URLStreamHandlerProvider/Basic.java b/test/jdk/java/net/spi/URLStreamHandlerProvider/Basic.java
index d2c635fb9ecdc99ac13939c2c83b3ebee588c981..fc62594e032a31795077c1eeed5de0ab2bba3cc0 100644
--- a/test/jdk/java/net/spi/URLStreamHandlerProvider/Basic.java
+++ b/test/jdk/java/net/spi/URLStreamHandlerProvider/Basic.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015, 2021, 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
@@ -45,6 +45,8 @@ import javax.tools.JavaFileObject;
 import javax.tools.StandardJavaFileManager;
 import javax.tools.StandardLocation;
 import javax.tools.ToolProvider;
+
+import jdk.test.lib.process.ProcessTools;
 import jdk.test.lib.util.FileUtils;
 import jdk.test.lib.JDKToolFinder;
 import static java.lang.String.format;
@@ -234,12 +236,8 @@ public class Basic {
 
     static Result java(List<String> sysProps, Collection<Path> classpath,
                        String classname, String arg) {
-        String java = getJDKTool("java");
 
-        List<String> commands = new ArrayList<>();
-        commands.add(java);
-        for (String prop : sysProps)
-            commands.add(prop);
+        List<String> commands = new ArrayList<>(sysProps);
 
         String cp = classpath.stream()
                 .map(Path::toString)
@@ -249,7 +247,7 @@ public class Basic {
         commands.add(classname);
         commands.add(arg);
 
-        return run(new ProcessBuilder(commands));
+        return run(ProcessTools.createTestJavaProcessBuilder(commands));
     }
 
     static Result run(ProcessBuilder pb) {
diff --git a/test/jdk/javax/net/ssl/DTLS/DTLSWontNegotiateV10.java b/test/jdk/javax/net/ssl/DTLS/DTLSWontNegotiateV10.java
index f67a02b3052a05727f84cf212cae0af259a91b8d..f8b7200552734e8e18b6a46189ca06a4a4fcae3b 100644
--- a/test/jdk/javax/net/ssl/DTLS/DTLSWontNegotiateV10.java
+++ b/test/jdk/javax/net/ssl/DTLS/DTLSWontNegotiateV10.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2023, 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
@@ -21,13 +21,13 @@
  * questions.
  */
 
+import jdk.test.lib.process.ProcessTools;
 import jdk.test.lib.security.SecurityUtils;
 
 import javax.net.ssl.*;
 import java.io.IOException;
 import java.net.*;
 import java.nio.ByteBuffer;
-import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicInteger;
@@ -87,14 +87,13 @@ public class DTLSWontNegotiateV10 {
         Process clientProcess = null;
         try (DTLSServer server = new DTLSServer(protocol)) {
             List<String> command = List.of(
-                    Path.of(System.getProperty("java.home"), "bin", "java").toString(),
                     "DTLSWontNegotiateV10",
                     // if server is "DTLS" then the client should be v1.0 and vice versa
                     protocol.equals(DTLS) ? DTLSV_1_0 : DTLS,
                     Integer.toString(server.getListeningPortNumber())
             );
 
-            ProcessBuilder builder = new ProcessBuilder(command);
+            ProcessBuilder builder = ProcessTools.createTestJavaProcessBuilder(command);
             clientProcess = builder.inheritIO().start();
             server.run();
             System.out.println("Success: DTLSv1.0 connection was not established.");
diff --git a/test/jdk/javax/net/ssl/ciphersuites/TLSWontNegotiateDisabledCipherAlgos.java b/test/jdk/javax/net/ssl/ciphersuites/TLSWontNegotiateDisabledCipherAlgos.java
index b120f33da94fb40b99e3d12724cd787dfb8eb0d5..b22b4f02165097fb108efda439f8f6843cc9db62 100644
--- a/test/jdk/javax/net/ssl/ciphersuites/TLSWontNegotiateDisabledCipherAlgos.java
+++ b/test/jdk/javax/net/ssl/ciphersuites/TLSWontNegotiateDisabledCipherAlgos.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2023, 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
@@ -21,17 +21,19 @@
  * questions.
  */
 
+import jdk.test.lib.process.ProcessTools;
+
 import javax.net.ssl.*;
 import java.io.IOException;
 import java.net.Socket;
 import java.nio.charset.StandardCharsets;
-import java.nio.file.Path;
 import java.security.Security;
 import java.util.List;
 
 /*
  * @test id=Server
  * @bug 8301379
+ * @library /test/lib
  * @summary Verify that Java will not negotiate disabled cipher suites when the
  * other side of the connection requests them.
  *
@@ -42,6 +44,7 @@ import java.util.List;
 /*
  * @test id=Client
  * @bug 8301379
+ * @library /test/lib
  * @summary Verify that Java will not negotiate disabled cipher suites when the
  * other side of the connection requests them.
  *
@@ -61,13 +64,12 @@ public class TLSWontNegotiateDisabledCipherAlgos {
         if (args[0].equals("server")) {
             try (TLSServer server = new TLSServer(useDisabledAlgo)) {
                 List<String> command = List.of(
-                        Path.of(System.getProperty("java.home"), "bin", "java").toString(),
                         "TLSWontNegotiateDisabledCipherAlgos",
                         "client",
                         Boolean.toString(!useDisabledAlgo),
                         Integer.toString(server.getListeningPort())
                 );
-                ProcessBuilder builder = new ProcessBuilder(command);
+                ProcessBuilder builder = ProcessTools.createTestJavaProcessBuilder(command);
                 Process p = builder.inheritIO().start();
                 server.run();
                 p.destroy();
diff --git a/test/jdk/sun/net/www/protocol/jar/GetContentTypeTest.java b/test/jdk/sun/net/www/protocol/jar/GetContentTypeTest.java
index 16a59d65dc2cefad4d4618dddda3234045331407..c730b6939102a563a4f008cc077747eab6f54f02 100644
--- a/test/jdk/sun/net/www/protocol/jar/GetContentTypeTest.java
+++ b/test/jdk/sun/net/www/protocol/jar/GetContentTypeTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -34,10 +34,10 @@
  *        GetContentType GetContentTypeTest
  * @run main/othervm GetContentTypeTest
  * @summary Test JarURLConnection.getContentType would
- *          would return default "content/unknown"
+ *          return default "content/unknown"
  */
 
-import jdk.test.lib.JDKToolFinder;
+import jdk.test.lib.process.OutputAnalyzer;
 import jdk.test.lib.process.ProcessTools;
 
 import java.io.File;
@@ -49,9 +49,9 @@ public class GetContentTypeTest {
         Path resJar = Paths.get(System.getProperty("test.src"),
                 "resource.jar");
         Path classes = Paths.get(System.getProperty("test.classes"));
-        ProcessTools.executeCommand(
-                JDKToolFinder.getTestJDKTool("java"),
-                "-cp", resJar + File.pathSeparator + classes, "GetContentType")
+        ProcessBuilder pb = ProcessTools.createTestJavaProcessBuilder(
+                "-cp", resJar + File.pathSeparator + classes, "GetContentType");
+        new OutputAnalyzer(pb.start())
                 .outputTo(System.out)
                 .errorTo(System.out)
                 .shouldHaveExitValue(0);
diff --git a/test/jdk/sun/net/www/protocol/jar/jarbug/TestDriver.java b/test/jdk/sun/net/www/protocol/jar/jarbug/TestDriver.java
index cb27c554686a164e20edddcd815799a529c729bd..19ab2a668d45fa5658441b7232f9ba14dd0620e7 100644
--- a/test/jdk/sun/net/www/protocol/jar/jarbug/TestDriver.java
+++ b/test/jdk/sun/net/www/protocol/jar/jarbug/TestDriver.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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,6 +47,7 @@ import java.nio.file.Paths;
 import static java.nio.file.StandardCopyOption.REPLACE_EXISTING;
 import jdk.test.lib.JDKToolFinder;
 import jdk.test.lib.compiler.CompilerUtils;
+import jdk.test.lib.process.OutputAnalyzer;
 import jdk.test.lib.process.ProcessTools;
 import jdk.test.lib.util.JarUtils;
 
@@ -81,14 +82,14 @@ public class TestDriver {
         CompilerUtils.compile(srcDir.resolve("src").resolve("test"), targetDir);
 
         // Run tests
-        String java = JDKToolFinder.getTestJDKTool("java");
         String cp = targetDir.toString() + File.pathSeparator + jarFile;
         String[] tests = new String[]{"TestBug4361044", "TestBug4523159"};
         for (String test : tests) {
-            ProcessTools.executeCommand(java, "-cp", cp, test)
-                        .outputTo(System.out)
-                        .errorTo(System.out)
-                        .shouldHaveExitValue(0);
+            ProcessBuilder pb = ProcessTools.createTestJavaProcessBuilder("-cp", cp, test);
+            new OutputAnalyzer(pb.start())
+                    .outputTo(System.out)
+                    .errorTo(System.out)
+                    .shouldHaveExitValue(0);
         }
     }
 }
diff --git a/test/jdk/sun/net/www/protocol/jrt/OtherResourcesTest.java b/test/jdk/sun/net/www/protocol/jrt/OtherResourcesTest.java
index 00ec82282e022919a202aa9d75f0e6d599eca070..0c901f95cc7b34e0a9f833a25b851a42d549e347 100644
--- a/test/jdk/sun/net/www/protocol/jrt/OtherResourcesTest.java
+++ b/test/jdk/sun/net/www/protocol/jrt/OtherResourcesTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2017, 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
@@ -21,8 +21,8 @@
  * questions.
  */
 
-import jdk.test.lib.JDKToolFinder;
-import static jdk.test.lib.process.ProcessTools.executeCommand;
+import jdk.test.lib.process.OutputAnalyzer;
+import jdk.test.lib.process.ProcessTools;
 
 /**
  * @test
@@ -39,12 +39,13 @@ import static jdk.test.lib.process.ProcessTools.executeCommand;
 public class OtherResourcesTest {
     public static void main(String[] args) throws Throwable {
         String classes = System.getProperty("test.classes");
-        executeCommand(JDKToolFinder.getTestJDKTool("java"),
-                       "--limit-modules", "java.base",
-                       "-cp", classes, "OtherResources")
-                      .outputTo(System.out)
-                      .errorTo(System.out)
-                      .shouldHaveExitValue(0);
+        ProcessBuilder pb = ProcessTools.createTestJavaProcessBuilder(
+                "--limit-modules", "java.base",
+                "-cp", classes, "OtherResources");
+        new OutputAnalyzer(pb.start())
+                .outputTo(System.out)
+                .errorTo(System.out)
+                .shouldHaveExitValue(0);
     }
 }