如何在Java中使用Python终端函数

如何在Java中使用Python终端函数,java,python,macos,terminal,Java,Python,Macos,Terminal,我有一个有趣的问题。我需要有一个窗口,允许用户像在终端中一样使用python输入命令。当您在mac上键入“python”时,它允许您运行python命令。我可以访问“python”函数,但它不允许我通过自定义命令行界面将python命令写入终端 做 正如您所看到的,我有一个事件侦听器,它在每次单击按钮时运行。 当我在命令行中键入“python”时,它将不允许我在子命令行中键入python命令。我有一种感觉是因为这句话: Process p = Runtime.getRuntime().exec(

我有一个有趣的问题。我需要有一个窗口,允许用户像在终端中一样使用python输入命令。当您在mac上键入“python”时,它允许您运行python命令。我可以访问“python”函数,但它不允许我通过自定义命令行界面将python命令写入终端

正如您所看到的,我有一个事件侦听器,它在每次单击按钮时运行。 当我在命令行中键入“python”时,它将不允许我在子命令行中键入python命令。我有一种感觉是因为这句话:

Process p = Runtime.getRuntime().exec(text);
有什么建议允许我使用python命令吗


感谢您阅读

您的进程有阻塞Swing事件线程的风险。为了防止这种情况发生,并防止进程OutputStream的操作系统缓冲区不足,我建议

  • 在后台线程中运行进程
  • 将流侦听器附加到进程,包括对进程的InputStream使用InputStreamReader,对进程的ErrorStream使用InputStreamReader,并将文本推入进程的OutputStream。将其放入PrintStream将很好地实现这一点
  • 也可以在自己的线程中执行此InputStream处理
  • <> LI>您认为使用PrimeBuudior作为获取过程的更为清洁的方法的无关建议。
    Process p = Runtime.getRuntime().exec(text);