[英]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.