Linux 更改类路径以启动vm
首先,我正在linux上工作:)我正在尝试使用JDI启动一个VM。我需要更改连接器中的参数。该连接器是Bootstrap.virtualMachineManager()中的LaunchingConnector连接器。 代码如下所示:Linux 更改类路径以启动vm,linux,junit,virtual-machine,jdi,Linux,Junit,Virtual Machine,Jdi,首先,我正在linux上工作:)我正在尝试使用JDI启动一个VM。我需要更改连接器中的参数。该连接器是Bootstrap.virtualMachineManager()中的LaunchingConnector连接器。 代码如下所示: for (LaunchingConnector connector : Bootstrap.virtualMachineManager(). launchingConnectors()) { if (connector.name
for (LaunchingConnector connector : Bootstrap.virtualMachineManager().
launchingConnectors()) {
if (connector.name().equals("com.sun.jdi.CommandLineLaunch")) {
Map<String, Connector.Argument> map = connector.defaultArguments();
StringArgument arg = (StringArgument) map.get("main");
arg.setValue(mainClass); //junit core
arg = (StringArgument) map.get("options");
arg.setValue(classpath);
/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java ../../lib/junit-4.6.jar -Xdebug -Xrunjdwp:transport=dt_socket,address=CIS-Visitor:57881,suspend=y org.junit.runner.JUnitCore
它抛出VMStartException,因为它尝试运行如下命令:
for (LaunchingConnector connector : Bootstrap.virtualMachineManager().
launchingConnectors()) {
if (connector.name().equals("com.sun.jdi.CommandLineLaunch")) {
Map<String, Connector.Argument> map = connector.defaultArguments();
StringArgument arg = (StringArgument) map.get("main");
arg.setValue(mainClass); //junit core
arg = (StringArgument) map.get("options");
arg.setValue(classpath);
/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java ../../lib/junit-4.6.jar -Xdebug -Xrunjdwp:transport=dt_socket,address=CIS-Visitor:57881,suspend=y org.junit.runner.JUnitCore
它不会更改类路径,最终也不会返回vm。谁能告诉我一个改变的方法吗?我还想从命令中取出-Xdebug并更改端口号
谢谢我相信用于启动机器的类路径不会被您创建的新VM自动继承。但是,如果您使用环境变量来定义类路径,它们看起来是继承的。有关类似问题,请参阅