【问题标题】:How to run several classes in IntelliJ IDEA with same ordering?如何在 IntelliJ IDEA 中以相同的顺序运行多个类?
【发布时间】:2011-09-23 08:48:38
【问题描述】:

有没有办法告诉 IntelliJ IDEA 社区版以相同的顺序依次运行多个类?每个类都实现了自己的public static void main(String[]) 方法。

我想避免使用 jUnit,因为它不能保证相同的执行顺序,尽管它很好,它可以在自己的 JVM 中执行每个测试。

【问题讨论】:

  • 您试图通过这种方式解决的实际问题是什么?可能有更好的方法,解决根本问题,而不是治标不治本。
  • 这是一个模拟。 A 充当连接到 B 的套接字服务器和客户端。B 充当 A 的服务器和 C 的服务器。C 充当与 A 交谈的客户端和与 C 交谈的客户端。消息正在环中传递,我想检查性能如何随 C 的不同实现而变化。
  • 如果您使用套接字,为什么不在 IntelliJ IDEA 的自己的 VM 中运行每个套接字呢?您是否希望经常重新启动它们?
  • 是的,我确实经常重启它们

标签: java intellij-idea


【解决方案1】:

您可以使用附加的此插件编写自己的 maven 迷你项目:
http://mojo.codehaus.org/exec-maven-plugin/

然后您可以在 IntelliJ 中根据您的目标在这个 maven 项目上添加运行配置。 我认为这会很好看。

【讨论】:

    【解决方案2】:

    你的意思是这样吗?

    // write a main which calls
    A.main(args);
    B.main(args);
    C.main(args);
    

    如果它们必须同时运行,您可以将它们作为任务添加到 ExecutorService。您可以捕获异常,这样如果一个死了,它们就会全部关闭。

    【讨论】:

    • 不错的尝试,但我需要它们在单独的 JVM 中运行。可以使用 shell 或批处理脚本来完成,但是我无法在调试模式下运行脚本。
    • 我会这样做,以便可以在同一个 JVM 中对其进行测试。即没有阻止这种情况发生的单例(或使用类加载器来解决问题)顺便说一句:您可以在一个线程中模拟客户端-服务器套接字。 ;)
    猜你喜欢
    • 2018-08-20
    • 1970-01-01
    • 1970-01-01
    • 2020-05-12
    • 2017-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多