tabulapdf icon indicating copy to clipboard operation
tabulapdf copied to clipboard

Issue with installing package on Java 12

Open mjfrigaard opened this issue 5 years ago • 5 comments

Tabulizer error (Github Issue)

PDF data

this is from your README.md.

To get set up:

  1. Install this version of Java: https://support.apple.com/kb/DL1572?locale=en_US

  2. 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

mjfrigaard avatar Apr 10 '19 20:04 mjfrigaard

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.

billdenney avatar May 07 '19 00:05 billdenney

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.

basil-isc avatar May 12 '19 12:05 basil-isc

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.

fpinter avatar Jun 19 '19 22:06 fpinter

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')

zhuchcn avatar Jul 07 '19 23:07 zhuchcn

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")

woodwards avatar May 24 '22 21:05 woodwards