2012-07-30 62 views
1

首先,我正在使用linux :)我試圖使用JDI啓動VM。我需要更改連接器中的參數。該連接器是來自Bootstrap.virtualMachineManager()的LaunchingConnector連接器。 代碼是這樣的:更改類路徑啓動vm

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 

它不改變類路徑,最後它不返回虛擬機。任何人都可以告訴我一個方法來改變這個?我還想從命令中取出-Xdebug並更改端口號。

感謝

回答