java - 运行其他类的 main 方法

标签 java swing

我一直在尝试从其他类运行 main 方法。我知道 swing 是单线程的。所以我正在使用这段代码

private static void runUpdate(){
    SwingUtilities.invokeLater(new Runnable() {
    @Override
    public void run() {
        String[] args1={"10"};
        Update.main(args1);
    }
});
}

private void updateButtonActionPerformed(java.awt.event.ActionEvent evt) {                                             
    runUpdate();
}  

此代码位于 InventoryMgr 类中,我想从 Update 类运行 main 方法。

我得到了StackOverFlowError

最佳答案

查看 StackOverFlowError 中的堆栈跟踪。它会告诉你什么方法调用了什么,以及在什么行号上。问题是你的 main() 调用了一个方法,该方法调用了一个方法,该方法调用了 main() ,而 main() 又调用了 ...

解决方案是将需要重复的功能从 main() 中取出,并将其放入单独的方法中。然后就可以调用它而不会导致无限递归。

调用 main() 是合法的,除了 JVM 会调用它来开始你的程序之外,它并没有什么特别之处。然而,真正想要再次调用 main() 的情况并不常见。

关于java - 运行其他类的 main 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31676546/

相关文章:

java - 如何跨互联网进行分组编程

java - 将选定的 Jtree 节点设置为 JTable

java - 同步取决于字符串初始化

java - Apache POI 关注生成的 excel 文件中的特定单元格

java - 我正在尝试使用 Java 在 Eclipse 中设置背景图像

java - 如何更改剪辑的分贝

java - 禁用 JFormattedTextField 中的蜂鸣声

java - 使用 Swing 在 Java 中以粗体书写

java - 读取 csv 数据文件并返回其所有 Java 模块的特定 StudentID 标记

java - 重新发明轮子 : connection pool