Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在netbeans的Java框架内以独立于平台的方式运行外部程序?_Java_External - Fatal编程技术网

如何在netbeans的Java框架内以独立于平台的方式运行外部程序?

如何在netbeans的Java框架内以独立于平台的方式运行外部程序?,java,external,Java,External,我目前正在为一所大学做一个研究项目,在这个项目中,我正在与我的数据库进行GUI交互,并根据数据启动一个外部程序。我正在使用运行时命令(一旦检测到操作系统)来启动带有所选数据的外部程序 我的问题是,如果可能的话,如何将外部程序的GUI嵌入Java框架中?使用Java.lang.Process或Java.lang.Runtime.exec 您使用的是控制台应用程序吗?你必须截取它的标准输出才能正确执行。因此,您可以在一个UI控件中显示第三方应用程序正在输出的文本,您可以将其放入JFrame中。鉴于对

我目前正在为一所大学做一个研究项目,在这个项目中,我正在与我的数据库进行GUI交互,并根据数据启动一个外部程序。我正在使用运行时命令(一旦检测到操作系统)来启动带有所选数据的外部程序


我的问题是,如果可能的话,如何将外部程序的GUI嵌入Java框架中?

使用Java.lang.Process或Java.lang.Runtime.exec


您使用的是控制台应用程序吗?你必须截取它的标准输出才能正确执行。因此,您可以在一个UI控件中显示第三方应用程序正在输出的文本,您可以将其放入JFrame中。

鉴于对该问题的澄清评论,简短的回答是“不,您不能这样做”


Java无法在JFrame中显示本机程序的GUI,即使目标程序的架构实际上允许它的GUI在另一个程序的框架中显示。

如我所述,我已经在项目中使用runtime,并且我的外部程序成功启动。问题是,我现在希望该程序出现在jFrame中,而不是在jFrame之外。它是GUI,还是希望控制台输出显示在jFrame中?我希望程序窗口显示在GUI项目的jFrame中。我想加载到JFrame上的程序是一个可视化的分子程序,而不是控制台程序。因此,是的,我想在JFrame中运行的程序是一个GUI。不,我使用的是我的自定义代码和Netbeans GUI代码。我想在JFrame中运行的应用程序是一个GUI@CecilO'Dell:您是否试图在另一个应用程序的GUI中显示一个应用程序的GUI?我认为这将非常复杂。如果您编写的应用程序适当地分离了层(UI、业务逻辑、数据访问),那么您可以尝试在其上构建一些API,以便“主”应用程序的GUI可以替代原始GUI。您也可以将其转换为web服务或web应用程序,但这一切似乎都有些过头了。完成起来有那么困难吗?我最初的想法是,应该有一些类来为您处理大多数复杂的问题。@Cecil O'Dell:对于基于web的应用程序来说很容易,但对于桌面应用程序来说,有时却非常复杂。除非您对应用程序的设计非常认真,否则将它们转换为web体系结构将是一项巨大的工作。如果你开发了两个应用程序,你能在一个桌面应用程序中重新组合它们吗?但是,可能有系统依赖的方式来做这件事。@ Paulo:我已经使用了JNI相当多的东西,甚至我也看不到塞西尔想要的方向。你知道C++能做我想做的吗?我不知道怎么做。但Eclipse可以完美地做到这一点。例如,如果您有一个csv或其他excel文件,您可以使用
(右键单击)->open with->In-Place Editor
打开它,excel窗口将在eclipse编辑器内部打开。@HarrisonCrafter:eclipse使用SWT not Swing。的确,Windows API允许嵌入其他应用程序,因此,与我的其他评论相反,它必须能够通过JNI实现;但不能直接使用Swing。