更改类路径以启动vm

时间:2012-07-30 18:00:17

标签: linux junit virtual-machine jdi

首先我正在使用linux :)我正在尝试使用JDI启动VM。我需要更改连接器中的参数。连接器是Bootstrap.virtualMachineManager()的LaunchingConnector连接器。 代码是这样的:

    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);

我正在尝试更改类路径以便它查找JUnit核心我告诉它所以新的类路径是“../../lib/junit-4.6.jar”而类是“org.junit” .runner.JUnitCore“

当我尝试并运行时

    VirtualMachine vm = connector.launch(map);

它抛出一个VMStartException,因为它试图运行这样的命令:

    /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并更改端口号。

由于

1 个答案:

答案 0 :(得分:0)

我认为用于启动计算机的类路径不会由您创建的新VM自动继承。但是,如果您使用环境变量来定义类路径,它们就会被继承。有关类似问题,请参阅Can't run JDI trace example: Error: Could not find or load main class