【问题标题】:Octave plot dialogs not showing when started as java process作为 java 进程启动时,八度图对话框不显示
【发布时间】:2020-09-19 21:34:26
【问题描述】:

我的 Java 应用程序中有一个使用 ProcessBuilder 制作的进程,它运行 Octave 的命令行版本。一切正常。但是,当我向 Octave 发送绘图命令时,它不会打开显示绘图的窗口,就像在普通控制台中那样。没有错误消息或其他任何内容。只是没有情节。

有办法改变吗?

问候

索斯滕

【问题讨论】:

  • 您使用的是什么操作系统和 Octave 版本?
  • Win10 企业版和 Octave 5.1.90

标签: java octave processbuilder


【解决方案1】:

我抽空制作了一个小样本来展示这一点:


import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

class OctavePlotTest {

    public static int main(String[] args) {

        ProcessBuilder builder = new ProcessBuilder();
        builder.command("octave-cli");
        builder.redirectErrorStream(true);
        
        Process process;
        try {
            process = builder.start();

            BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(process.getOutputStream ()));
            BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));

            String line;

            // Check that Octave is really running and streams are read from / written to
            writer.write("1+1");
            writer.newLine();

            // Try to plot
            writer.write("plot(sin(0:0.1:2*pi))");
            writer.newLine();
            
            writer.flush();

            while ((line = br.readLine()) != null)
            {
                System.out.println(line);
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

plot(sin(0:0.1:2*pi)) 如果您在 Octave 的命令行版本中运行它可以工作,但通过 Java Process 对象调用时则不能。

【讨论】:

  • 我也遇到了同样的问题,你找到解决办法了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多