Java 使用COM接口访问对象的属性

Java 使用COM接口访问对象的属性,java,com,jacob,Java,Com,Jacob,我使用JACOB作为java的桥梁来访问模拟器(PTV vissim)的对象为了能够实时操作它,大多数对象都有方法和属性。。。我做得很好,因为我用的是 getProperty和invoke函数,但现在我需要访问对象属性,例如name,但我不知道应该使用哪个函数,正在处理的对象是 ActiveXComponent package com.vissim; import java.util.List; import java.util.Scanner; import com.jacob.acti

我使用JACOB作为java的桥梁来访问模拟器(PTV vissim)的对象为了能够实时操作它,大多数对象都有方法和属性。。。我做得很好,因为我用的是

getProperty
invoke
函数,但现在我需要访问对象属性,例如name,但我不知道应该使用哪个函数,正在处理的对象是

ActiveXComponent

package com.vissim;

import java.util.List;
import java.util.Scanner;

import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Variant;


public class Main {

    /**
     * @param args
     */

    public static void main(String[] args) {

        Vissim vissim = new Vissim();
        vissim.start();
        vissim.LoadNet("H:\\MY VISSIM\\projects\\new.inpx");


        Net net = new Net(vissim);

        ActiveXComponent linkContainer =  net.getNetProperty("links");
        System.out.println("links fetched");
        ActiveXComponent link =linkContainer.invokeGetComponent("itemByKey", new Variant(1));
        // the problem is here , i need to do something like 
        //link.getProperty("Attributes");

        System.out.println("we are here ");

}

使用com4j生成一些包装文件。com4j可能会崩溃,因为它无法处理某些类型,但如果您转到生成的java文件,您将看到可以从Dispatch对象调用的所有方法的名称,例如,
ISimulation。java
将拥有可以在模拟对象上调用的所有方法。 下面是一些函数/方法调用的示例:

Dispatch vissim = VISSIM.getObject();
Dispatch.call(vissim, "loadNet", new Object[]{new Variant("C:\\Users\\userName\\workspace\\VISSIMNetworks\\network.inp"), new Variant(0)});
Dispatch simulation = Dispatch.call(vissim, "simulation").toDispatch();
Dispatch.call(simulation, "runContinuous");