W3cubDocs

/OpenJDK 25

Class JdiInitiator

java.lang.Object
jdk.jshell.execution.JdiInitiator
public class JdiInitiator extends Object
Sets up a JDI connection, providing the resulting JDI VirtualMachine and the Process the remote agent is running in.
Since:
9

Nested Class Summary

Modifier and Type Class Description
protected static interface  JdiInitiator.ProcessStarted
Callback that should invoked when the remote process is invoked.

Constructor Summary

Constructor Description
JdiInitiator(int port, List<String> remoteVMOptions, String remoteAgent, boolean isLaunch, String host, int timeout, Map<String,String> customConnectorArgs)
Start the remote agent and establish a JDI connection to it.

Method Summary

Modifier and Type Method Description
Process process()
Returns the launched process.
protected void runListenProcess(String jdiAddress, int jshellControlPort, List<String> remoteVMOptions, JdiInitiator.ProcessStarted setupVM)
Create a process that will attach to the given address.
VirtualMachine vm()
Returns the resulting VirtualMachine instance.

Constructor Details

JdiInitiator

public JdiInitiator(int port, List<String> remoteVMOptions, String remoteAgent, boolean isLaunch, String host, int timeout, Map<String,String> customConnectorArgs)
Start the remote agent and establish a JDI connection to it.
Parameters:
port - the socket port for (non-JDI) commands
remoteVMOptions - any user requested VM command-line options
remoteAgent - full class name of remote agent to launch
isLaunch - does JDI do the launch? That is, LaunchingConnector, otherwise we start explicitly and use ListeningConnector
host - explicit hostname to use, if null use discovered hostname, applies to listening only (!isLaunch)
timeout - the start-up time-out in milliseconds. If zero or negative, will not wait thus will timeout immediately if not already started.
customConnectorArgs - custom arguments passed to the connector. These are JDI com.sun.jdi.connect.Connector arguments. The vmexec argument is not supported.

Method Details

vm

public VirtualMachine vm()
Returns the resulting VirtualMachine instance.
Returns:
the virtual machine

process

public Process process()
Returns the launched process.
Returns:
the remote agent process

runListenProcess

protected void runListenProcess(String jdiAddress, int jshellControlPort, List<String> remoteVMOptions, JdiInitiator.ProcessStarted setupVM)
Create a process that will attach to the given address.
Parameters:
jdiAddress - address on which a JDI server is waiting for a connection
jshellControlPort - the port which the remote agent should connect to
remoteVMOptions - VM options for the remote agent VM
setupVM - a callback that should be called then the remote agent process is created. The callback will setup the JDI's VirtualMachine.
Since:
22

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/jdk.jshell/jdk/jshell/execution/JdiInitiator.html