在JFrame中运行可执行文件(.exe)

时间:2013-05-03 11:37:57

标签: java swing embed frame executable

我目前正在开发一个Java项目,我们必须使用其他人创建的头像。此头像是图形可执行文件。它通过xmlrpc与Java应用程序通信。

我希望能够在我的Java应用程序中运行(嵌入)此可执行文件。我不只是想执行可执行文件,我希望它实际上在Java应用程序中可见。

我知道这种行为在C#(Process类)中是可行的,所以我想知道:这在Java中也可能吗?

应用程序中的头像必须是可扩展的。

1 个答案:

答案 0 :(得分:2)

C# example you gave使用Win32 API 技巧使用SetParent将正在运行的嵌入式可执行文件主窗口的父级从desktop window更改为一个新创建的控件。为此,您需要:

  • 创建 WinAPI窗口控件以包含嵌入式可执行文件
  • 可以访问 Windows API 以获取正在运行的.exe主窗口的句柄
  • 可以访问 Windows API 以使用SetParent

问题是您无法访问Java中的Windows API 。甚至使用JNI或类似JNA之类的东西也不容易,因为您无法直接访问由JVM创建的 WinAPI窗口控件(除了使用一些未记录的特定于Windows的Sun API之外。