Конечно, есть много таких подходов, как синхронный запрос, обещание, но из моего опыта я думаю, что вы должны использовать подход обратного вызова. Естественно, что асинхронное поведение Javascript. Итак, ваш фрагмент кода можно переписать немного иначе:
function foo() {
var result;
$.ajax({
url: '...',
success: function(response) {
myCallback(response);
}
});
return result;
}
function myCallback(response) {
// Does something.
}
Использование:
Sys.setenv(JAVA_HOME='...path to JRE...')
, например
Sys.setenv(JAVA_HOME='C:\\Program Files\\Java\\jdk1.7.0_51\\jre')
Неправильная переменная среды.
Вероятно, это проблема с настройкой с помощью указателя JAVA_HOME. Если у вас нет JDK, но JRE, вот вам, возможно, придется сделать: Sys.setenv (JAVA_HOME = 'C: \ Program Files \ Java \ jre1.8.0_161')
Не забудьте изменить номера после «jre» на основе того, что у вас есть на вашем компьютере. Вот ссылка , которая объясняет разницу между JDK и JRE.
Попробуйте загрузить ежедневную сборку RStudio: http://dailies.rstudio.com
Это сработало для меня во второй попытке после того, как я попробовал все остальное (обновленный R, Rstudio, Java, переустановил rJava миллион раз и выполнил все советы по стекированию).
Совет появился на форумах поддержки RStudio :
RStudio действительно не читает некоторые сведения о запуске, обычно предоставляемые R здесь ...
У нас есть потенциальная возможность для этого в последних ежедневных сборках RStudio - если вы согласны , вы можете попробовать загрузить и проверить с помощью http://dailies.rstudio.com
blockquote>
Я столкнулся с подобной проблемой и провел целый день, чтобы устранить ее. Хотя мой компьютер, windows7 и Rstudio - 64 бит, но моя Java 32-битная (!) Однажды я понял, что я загружаю 64-битную Java. Мне нужно вручную загрузить, автоматическая загрузка приведет к 32-битной версии, потому что мой браузер Chrome - 32 бит. 64-битная Java будет автоматически установлена в
C: \ Program Files \ Java, однако 32-битная Java будет автоматически установлена в C: \ Program Files (x86) \ Java.
blockquote>Это важный индикатор, указывающий, что моя Java - 64-разрядная или 32-разрядная.
После установки 64-битной Java все работает отлично!
Я получил аналогичную ошибку:
> library(rJava)
Error : .onLoad failed in loadNamespace() for 'rJava', details:
call: inDL(x, as.logical(local), as.logical(now), ...)
error: unable to load shared object 'C:/program files/R/R-3.1.2/library/rJava/libs/x64/rJava.dll':
LoadLibrary failure: The specified module could not be found.
Мой JAVA_HOME
указывал на JDK
, а не на JRE
.
> Sys.getenv("JAVA_HOME")
[1] "c:\\java\\jdk1.7.0_55"
> Sys.setenv(JAVA_HOME="c:\\java\\jdk1.7.0_55\\jre")
Теперь я мог загружать rJava
и xlsx
в R
.
Я получаю эту ошибку каждый раз, когда Java переполняет обновление на моем ПК. Когда я иду:
Sys.getenv("Path")
Я нахожу что-то в выходе, которое выглядит как
C:\\Program Files \\Java\\jre1.8.0_112\\bin\\server\\
, где последние несколько цифр подпапки jre
устарели.
Чтобы исправить это повсюду, вы можете отредактировать переменную среды Windows. Сделайте это, перейдя в меню WINDOWS + X, выбрав в командной строке команду «Командная строка» (Admin) и введите
rundll32.exe sysdm.cpl,EditEnvironmentVariables
в поле команды. Это вызовет это диалоговое окно с правами прав для переменной PATH (и другими системными переменными):
Интерфейс Windows для редактирования длинных переменных среды является немного громоздким, поэтому после того, как я нажму Редактировать ... Мне нравится копировать-вставить полученный беспорядок пути в Notepad.exe , выполнить там работу и скопировать-вставить обратно.
Была такая же проблема:
Я запускал 64-bit R
, вы можете проверить, какая версия закрывается и повторно открывается RStudio
. Он должен быть наверху.
У меня установлен 32-bit
java, т.е. папка Java находилась в C:\Program Files (x86)
.
Я просто перешел на Java.com и загрузил 64-bit Java
и добавил его в конце PATH
в System variables
, и теперь я могу загрузить rJava
. (Установка попросила меня избавиться от старой версии, которую я сделал)
Столкнулся с аналогичным сообщением об ошибке.
Пробовал несколько шагов, перечисленных здесь.