まず、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 を取り出し、ポート番号を変更したいと思います。
ありがとう