【问题标题】:Octave plot dialogs not showing when started as java process作为 java 进程启动时,八度图对话框不显示
【发布时间】:2020-09-19 21:34:26
【问题描述】:
我的 Java 应用程序中有一个使用 ProcessBuilder 制作的进程,它运行 Octave 的命令行版本。一切正常。但是,当我向 Octave 发送绘图命令时,它不会打开显示绘图的窗口,就像在普通控制台中那样。没有错误消息或其他任何内容。只是没有情节。
有办法改变吗?
问候
索斯滕
【问题讨论】:
标签:
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 对象调用时则不能。