gpt4 book ai didi

java - 关闭由我的 Java 代码中启动的 "jar"应用程序打开的窗口

转载 作者:行者123 更新时间:2023-11-30 04:47:44 24 4
gpt4 key购买 nike

我有一个(Swing + AWT)应用程序,它使用外部 jar 库(通过调用其中的 main 方法)。每次发生事件(例如按下按钮)时,该外部应用程序都会打开一个窗口。请注意,我无法访问外部 jar 源代码。

如何在再次调用 main 之前关闭之前打开的窗口?

actionPerformed 如下所示:

private void anActionPerformed(java.awt.event.ActionEvent evt) {
String [] argv = {"arg1","arg2","arg3"};
com.somepackage.SomeClass.main(argv);
}

最佳答案

你可以猜测——这可能是错误的——SomeClass.main 调用了一个 Ctor new SomeClass。

你可以尝试自己调用它:

SomeClass someclass = new SomeClass ();

它是一个JFrame,它经常在main中初始化,并且经常设置一些属性:

someclass.setSize (...
someclass.setLocation (...
someclass.setVisible (true);

如果有效,您可以以某种方式存储 someclass 引用,以便稍后调用

someclass.dispose ();
someclass = new SomeClass ();

否则你可能会搜索 jar 中的每个类:

jar -tf some.jar

并使用反射和内省(introspection)来搜索要调用的ctor。

或者您尝试扩展 SomeClass - 也许它不是最终的并且可以继承。

class MyClass extends SomeClass 

关于java - 关闭由我的 Java 代码中启动的 "jar"应用程序打开的窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10589406/

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