Я пытаюсь вызвать некоторые г кода внутри Java, довольно много, как это:Заговор в R с помощью Java - работает, но не может найти участок
private void makeMatrix() throws ScriptException {
try {
Runtime.getRuntime().exec(" Rscript firstscript.r");
System.out.println("Script executed");
} catch (IOException ex) {
System.out.println("Exception");
System.out.println(ex.getMessage());
}
}
Ну, я получаю «Скрипт выполнен» печать ,
Мои (ну, на самом деле не моя, просто чтобы проверить) г-код достаточно прост, в значительной степени просто, чтобы увидеть это работает на всех:
x=seq(0,2,by=0.01)
y=2*sin(2*pi*(x-1/4))
plot(x,y)
Таким образом, он не должен делать гораздо больше, чем сюжет синус.
Однако не должно быть какого-то всплывающего окна, где вы можете увидеть сюжет? т.к. нет. Что я делаю не так?
Edit: В ответ на замечания, которые я получил здесь я редактировал г-файл, добавив:
jpeg('rplot.jpg')
plot(x,y)
dev.off()
к нему.
Однако, если я попытаюсь найти rplot.jpg на моей системе, ее просто нет.
Возможно, вы должны явно объявить новое устройство для сюжета. В OSX функция 'quartz', в Windows это' windows', on * nix Я считаю, что вы хотите 'X11'. Возможно, имеет смысл сохранить график в файле, используя, например, 'png', а затем открыть файл с Java. –
Вы также можете взглянуть на [rJava] (http: //www.rforge.net/rJava /) или [Rcaller] (http://www.mhsatman.com/rcaller.php), последний из которых имеет явную поддержку построения, а не ручное обращение к исполняемому файлу R. – chrylis
Я посмотрел на них обоих. Проблема в том, что jar должен быть исполняемым на windows AND linux, и я просто не справился с этим. – newnewbie