gpt4 book ai didi

java - 使用 Enterprise Architect Java API 连接到 EA 的运行实例

转载 作者:行者123 更新时间:2023-11-29 04:56:48 25 4
gpt4 key购买 nike

我们正在对 EA 存储库中的数据进行一些自定义报告 - 即我们直接从存储库数据库中获取数据。问题是,我们还需要将绑定(bind)到指定元素的图表导出到单独的文件中——我正在试验使用 Java API 来做到这一点。我想知道我是否可以使用 api 连接到当前运行的 EA 实例,或者我是否需要启动一个新实例(这会显着降低速度)。

或者还有其他方法可以实现该目标吗?我是 EA 自动化界面的新手,所以我很感激任何提示。

最佳答案

似乎可以使用 JACOB 和这个 hack:

Java:

import java.lang.reflect.Constructor;
import org.sparx.App;
import com.jacob.activeX.ActiveXComponent;

public class TestJava {

public static void main(String[] args) throws Exception {
ActiveXComponent c=ActiveXComponent.connectToActiveInstance ("EA.App");
Constructor<?> appConstructor=Class.forName("org.sparx.App").getDeclaredConstructor(long.class);
appConstructor.setAccessible(true);
App app=(App)appConstructor.newInstance(c.m_pDispatch);
app.GetRepository().GetConnectionString();
System.out.println(app.GetRepository().GetPackageByGuid("{9C9D301B-B54D-44fb-898A-0412497D39AA}").GetName());
}

}

常规:

import org.sparx.App
import com.jacob.activeX.ActiveXComponent

ActiveXComponent c=ActiveXComponent.connectToActiveInstance ("EA.App")
println c.m_pDispatch
App app=new App(c.m_pDispatch);
println app.GetRepository().GetConnectionString()
println app.GetRepository().GetPackageByGuid("{9C9D301B-B54D-44fb-898A-0412497D39AA}").GetName()

关于java - 使用 Enterprise Architect Java API 连接到 EA 的运行实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33496081/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com