我一直在尝试从其他类运行 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/