tabulapdf
tabulapdf copied to clipboard
Issue with installing package on Java 12
Tabulizer error (Github Issue)
PDF data
this is from your README.md.
To get set up:
-
Install this version of Java: https://support.apple.com/kb/DL1572?locale=en_US
-
Configure R and Java with
javareconf
in Terminal
sudo R CMD javareconf
Enter password, then you should see this:
JAVA_HOME : /Library/Java/JavaVirtualMachines/openjdk-12.jdk/Contents/Home
Java library path: $(JAVA_HOME)/lib/server
JNI cpp flags : -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/darwin
JNI linker flags : -L$(JAVA_HOME)/lib/server -ljvm
Updating Java configuration in /Library/Frameworks/R.framework/Resources
Done.
Load the packages for dealing with pdf data
These packages load fine.
library(rJava)
library(pdftools)
Warning at Java installation
These do not load.
library(tabulizerjars)
## Error: package or namespace load failed for 'tabulizerjars':
## .onLoad failed in loadNamespace() for 'tabulizerjars', details:
## call: .jcheck(silent = FALSE)
## error: java.lang.NullPointerException.jcall(f, "Ljava/lang/Object;", "get", .jcast(ic, "java/lang/Object"))new("jobjRef", jobj = <pointer: 0x7fdd8879df70>, jclass = "java/lang/NullPointerException")
library(tabulizer)
## Error: package or namespace load failed for 'tabulizer':
## .onLoad failed in loadNamespace() for 'tabulizerjars', details:
## call: .jcall("RJavaTools", "Z", "classHasField", x, name, static)
## error: RcallMethod: cannot determine object class
In the error message:
WARNING: Initial Java 12 release has broken JNI support and does NOT work. Use stable Java 11 (or watch for 12u if avaiable).
And when I check the version on my local machine, I get the following:
$ java -version
openjdk version "12" 2019-03-19
OpenJDK Runtime Environment (build 12+33)
OpenJDK 64-Bit Server VM (build 12+33, mixed mode, sharing)
traceback
The output from traceback()
is below:
> traceback()
6: stop(msg, call. = FALSE, domain = NA)
5: value[[3L]](cond)
4: tryCatchOne(expr, names, parentenv, handlers[[1L]])
3: tryCatchList(expr, classes, parentenv, handlers)
2: tryCatch({
attr(package, "LibPath") <- which.lib.loc
ns <- loadNamespace(package, lib.loc)
env <- attachNamespace(ns, pos = pos, deps)
}, error = function(e) {
P <- if (!is.null(cc <- conditionCall(e)))
paste(" in", deparse(cc)[1L])
else ""
msg <- gettextf("package or namespace load failed for %s%s:\n %s",
sQuote(package), P, conditionMessage(e))
if (logical.return)
message(paste("Error:", msg), domain = NA)
else stop(msg, call. = FALSE, domain = NA)
})
1: library(tabulizer)
Attempt #1: Install previous version of Java
Followed this guide. Downloaded this version of Java (11) and installed it.
But I still see the error.
Session information
sessioninfo::session_info()
## ─ Session info ──────────────────────────────────────────────────────────
## setting value
## version R version 3.5.3 (2019-03-11)
## os macOS Mojave 10.14.4
## system x86_64, darwin15.6.0
## ui X11
## language (EN)
## collate en_US.UTF-8
## ctype en_US.UTF-8
## tz America/Los_Angeles
## date 2019-04-10
##
## ─ Packages ──────────────────────────────────────────────────────────────
## package * version date lib source
## askpass 1.1 2019-01-13 [1] CRAN (R 3.5.2)
## assertthat 0.2.1 2019-03-21 [1] CRAN (R 3.5.2)
## backports 1.1.4 2019-04-10 [1] CRAN (R 3.5.3)
## broom 0.5.2 2019-04-07 [1] CRAN (R 3.5.2)
## cellranger 1.1.0 2016-07-27 [1] CRAN (R 3.5.0)
## cli 1.1.0 2019-03-19 [1] CRAN (R 3.5.2)
## colorspace 1.4-1 2019-03-18 [1] CRAN (R 3.5.2)
## crayon 1.3.4 2017-09-16 [1] CRAN (R 3.5.0)
## digest 0.6.18 2018-10-10 [1] CRAN (R 3.5.0)
## dplyr * 0.8.0.1 2019-02-15 [1] CRAN (R 3.5.2)
## evaluate 0.13 2019-02-12 [1] CRAN (R 3.5.2)
## forcats * 0.4.0 2019-02-17 [1] CRAN (R 3.5.1)
## generics 0.0.2 2018-11-29 [1] CRAN (R 3.5.1)
## ggplot2 * 3.1.1 2019-04-07 [1] CRAN (R 3.5.2)
## glue 1.3.1 2019-03-12 [1] CRAN (R 3.5.2)
## gtable 0.3.0 2019-03-25 [1] CRAN (R 3.5.2)
## haven 2.1.0 2019-02-19 [1] CRAN (R 3.5.2)
## hms 0.4.2 2018-03-10 [1] CRAN (R 3.5.0)
## htmltools 0.3.6 2017-04-28 [1] CRAN (R 3.5.0)
## httr 1.4.0 2018-12-11 [1] CRAN (R 3.5.0)
## jsonlite 1.6 2018-12-07 [1] CRAN (R 3.5.1)
## knitr 1.22 2019-03-08 [1] CRAN (R 3.5.2)
## lattice 0.20-38 2018-11-04 [1] CRAN (R 3.5.3)
## lazyeval 0.2.2 2019-03-15 [1] CRAN (R 3.5.2)
## lubridate 1.7.4 2018-04-11 [1] CRAN (R 3.5.0)
## magrittr * 1.5 2014-11-22 [1] CRAN (R 3.5.0)
## modelr 0.1.4 2019-02-18 [1] CRAN (R 3.5.1)
## munsell 0.5.0 2018-06-12 [1] CRAN (R 3.5.0)
## nlme 3.1-137 2018-04-07 [1] CRAN (R 3.5.3)
## pdftools * 2.2 2019-03-10 [1] CRAN (R 3.5.2)
## pillar 1.3.1.9000 2019-01-20 [1] Github (r-lib/pillar@3a54b8d)
## pkgconfig 2.0.2 2018-08-16 [1] CRAN (R 3.5.0)
## plyr 1.8.4 2016-06-08 [1] CRAN (R 3.5.0)
## purrr * 0.3.2 2019-03-15 [1] CRAN (R 3.5.2)
## qpdf 1.1 2019-03-07 [1] CRAN (R 3.5.2)
## R6 2.4.0 2019-02-14 [1] CRAN (R 3.5.1)
## Rcpp 1.0.1 2019-03-17 [1] CRAN (R 3.5.2)
## readr * 1.3.1 2018-12-21 [1] CRAN (R 3.5.0)
## readxl 1.3.1 2019-03-13 [1] CRAN (R 3.5.2)
## rJava * 0.9-11 2019-03-29 [1] CRAN (R 3.5.2)
## rlang 0.3.4 2019-04-07 [1] CRAN (R 3.5.2)
## rmarkdown 1.12 2019-03-14 [1] CRAN (R 3.5.2)
## rstudioapi 0.10 2019-03-19 [1] CRAN (R 3.5.2)
## rvest 0.3.2 2016-06-17 [1] CRAN (R 3.5.0)
## scales 1.0.0 2018-08-09 [1] CRAN (R 3.5.0)
## sessioninfo 1.1.1 2018-11-05 [1] CRAN (R 3.5.1)
## stringi 1.4.3 2019-03-12 [1] CRAN (R 3.5.2)
## stringr * 1.4.0 2019-02-10 [1] CRAN (R 3.5.2)
## tibble * 2.1.1 2019-03-16 [1] CRAN (R 3.5.2)
## tidyr * 0.8.3.9000 2019-03-24 [1] Github (tidyverse/tidyr@7c2ad28)
## tidyselect 0.2.5 2018-10-11 [1] CRAN (R 3.5.0)
## tidyverse * 1.2.1 2017-11-14 [1] CRAN (R 3.5.0)
## vctrs 0.1.0.9002 2019-03-24 [1] Github (r-lib/vctrs@e309c1b)
## withr 2.1.2 2018-03-15 [1] CRAN (R 3.5.0)
## xfun 0.6 2019-04-02 [1] CRAN (R 3.5.2)
## xml2 1.2.0 2018-01-24 [1] CRAN (R 3.5.0)
## yaml 2.2.0 2018-07-25 [1] CRAN (R 3.5.0)
## zeallot 0.1.0 2018-01-28 [1] CRAN (R 3.5.0)
##
## [1] /Library/Frameworks/R.framework/Versions/3.5/Resources/library
There are some general issues with rJava and Java 12 (s-u/rJava#175). While I've not tested your error, my guess is that this is related. You have to not only install Java 11, but also uninstall Java 12.
I am unable to find instructions to uninstall Java 12 here https://docs.oracle.com/en/java/javase/12/index.html. Do you know of any resource I could use? I am working on the MacOS.
Although these instructions for uninstalling JDK were written for JDK 8, they also work on JDK 12: Uninstalling the JDK
For reference, see also Uninstalling Java.
Try this line before loading the package. It tells the R session which JDK to use. This is not permanent, so you have to run this every time you restart your R session. But it works, and don't need to uninstall the other versions.
Sys.setenv(JAVA_HOME='/Library/Java/JavaVirtualMachines/jdk-11.0.1.jdk/Contents/Home')
On Windows this worked for me:
install.packages("rJava") Sys.setenv(JAVA_HOME="C:/Program Files/Java/jre1.8.0_333/") library(rJava) .jinit() .jcall("java/lang/System", "S", "getProperty", "java.runtime.version") # check java version remotes::install_github("ropensci/tabulizerjars", INSTALL_opts = "--no-multiarch") remotes::install_github("ropensci/tabulizer", INSTALL_opts = "--no-multiarch")