[英]How do I run an external program inside a Java frame in netbeans in a platform independent manner?
我目前正在为一所大学做一个研究项目,我正在与我的数据库进行 GUI 交互并基于数据启动一个外部程序。 我正在使用运行时命令(一旦检测到操作系统)使用所选数据启动该外部程序。
我的问题是如何将外部程序的 GUI 嵌入到 Java 框架中,如果这甚至可以远程实现?
鉴于对该问题的澄清评论,简短的回答是“不,你不能那样做”。
Java 无法在 JFrame 中显示本机程序的 GUI,即使目标程序实际上被设计为允许其 GUI 在另一个程序的框架中呈现。
您正在使用控制台应用程序吗? 您必须拦截其标准输出才能正确执行。 因此,您可以在 UI 控件中显示第 3 方应用程序正在输出的文本,您可以将其放入 JFrame 中。
It depends from the application you want to embed to the JFrame, but you can try to use jawt: https://docs.oracle.com/javase/9/docs/specs/AWT_Native_Interface.html
您将能够获得特定于本机操作系统的 window 句柄并可以在其上绘制,或者您可以将其用作容器。 请注意,仅支持硬件组件,因此您需要将面板/画布添加到 JFrame,然后将其用于您的本机应用程序。
This is similar to this question: Native JNI/JAWT Swing application runs successfully on Java 6, but fails on Java 7 (64-bit Windows 7 OS)
使用 java.lang.Process 或 java.lang.Runtime.exec。
http://www.java-tips.org/java-se-tips/java.util/from-runtime.exec-to-processbuilder.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.