从Java以最小化状态启动应用程序

这是我之前问过的一个跟进问题:

开始-程序-如果-不已经磨合的Java

我没有得到一个很好的解决scheme(因为似乎没有一个),但我有一个相关的问题:

有没有办法在Java代码(Windows中的.exe,而不是Java应用程序)中启动应用程序并使其开始最小化? 或者,也许开始后尽量减less它? 这将解决另一个问题的焦点问题,已经运行的问题或多或less会自行解决。

澄清问题:Java客户端和.exe运行在Windows中,我真的没有能力写任何包装或使用JNI mojo或类似的东西。 我多less需要一个纯粹的Java解决scheme。

再次感谢您的帮助,我非常乐意接受一个答案:“这是不可能的”。

Solutions Collecting From Web of "从Java以最小化状态启动应用程序"

仅Windows:

public class StartWindowMinimized { public static void main(String[] args) throws IOException { if (args.length != 1) { System.err .println("Expected: one argument; the command to launch minimized"); } String cmd = "cmd.exe /C START /MIN "; Runtime.getRuntime().exec(cmd + args[0]); } } 

示例用法:

 java -cp . StartWindowMinimized notepad.exe java -cp . StartWindowMinimized cmd.exe 

要了解所涉及的理由:

 cmd /? START /? 

我不太熟悉Java的细节,但是根据我刚刚查看的网站,如果您使用的是java.awt.Frame(其中包含Swing的JFrame),则应使用该框架的功能称为setState,它接受Frame.ICONIFIED和Frame.NORMAL作为参数(图标化将是最小化状态)。

如何最小化Java应用程序窗口?

如果这些应用程序有命令行开关使它们开始最小化,那么您可以轻松使用这些开关。 否则,我不能100%确定,但我非常怀疑这是可能的。 你将不得不有一些方法来与Windows窗口管理器进行交互,而Windows窗口管理器本质上是非常特定于平台的,因此Java不太可能包含它。 有人写了第三方库来处理这个任务总是有可能的,但是对我来说这似乎不太可能。