rJava install error "JAVA_HOME cannot be determined from the Registry" - java

I am trying to load the rJava using the command:
library(rJava)
But I get the following error:
Error : .onLoad failed in loadNamespace() for 'rJava', details:
call: fun(libname, pkgname)
error: JAVA_HOME cannot be determined from the Registry
Error: package or namespace load failed for ‘rJava’
I tried reinstalling both the Java and the R program with the latest versions
but still get these errors..
May I know how I can resolve this? Thank you very much!

This error is often resolved by installing a Java version (i.e. 64-bit Java or 32-bit Java) that fits to the type of R version that you are using (i.e. 64-bit R or 32-bit R). This problem can easily effect Windows 7 users, since they might have installed a version of Java that is different than the version of R they are using.
http://www.r-statistics.com/2012/08/how-to-load-the-rjava-package-after-the-error-java_home-cannot-be-determined-from-the-registry/

Install 64 bit Java from https://java.com/en/download/manual.jsp.
Then in windows cmd run
setx PATH "C:\Program Files\Java\jre1.8.0_211\bin\server;%PATH%"
(make sure your path is correct).
Then in RStudio run
Sys.setenv(JAVA_HOME="")
Now, you should be able to run rJava!!

I got the same error resolved by installing same version of R and Java i.e. 64 bits and manually updating the path i.e. ,
Sys.setenv(JAVA_HOME='C:/Program Files/Java/jre1.8.0_121') # for 64-bit version

R for Windows installer installs by default both 32-bit and 64-bit files. Reinstalling R and unticking 32-bit part solved the problem for me.

Under Windows 10, first check your (running) R-Version:
R.version
If you see something like x86_64, a 64-bit version of Java is needed.
Simply downloading and installing the matching Java version (https://java.com/en/download/manual.jsp) solved the problem for me. No reinstall of R needed (as suggested by other users here). There also was no need to set the path explicitly.

As mentioned in the r-statistics link cited above, you have to manually download the 64-bit version of Java. If not, then the 32-bit version will be installed.
So, if you have a 64-bit operating system, then ensure that both R and Java are using the 64-bit installs. Otherwise, this problem will persist.

This has been killing me and I have tried multiple methods above, it doesn't work. After, I mix all solution to try and below process works for me.
Install Java for 64 bit
Run below code in windows command
setx PATH "C:\Program Files\Java\jre1.8.0_171\bin\server;%PATH%"
(please change the address acorrding to your dvm.dll real address)
Run below in R studio
Sys.setenv(JAVA_HOME="")
Then I finally can run
library(rJava)
library(xlsx)

I faced the same issue and was feeling very down as I couldnt get my analysis done.
This worked for me :
check your operating system. 64 bit or 32 bit.
https://helpx.adobe.com/x-productkb/global/determine-whether-computer-running-32.html
uninstall previous versions of Java.
delete rJAVA library from Doc>R>win-library. If you have more than 1 versions of R, make sure you delete rJAVA package from all of them.
install Java based on system requirement (64 bit or 32 bit).
and finally restart R before and after installing rJava package.

If R is 64-bit version make sure to install Java 64-bit version!
If R is x86-bit version make sure to install Java x86-bit version!

You can add INSTALL_opts=c("--no-multiarch") to your install_github() call:
devtools::install_github("mne-tools/mne-r", INSTALL_opts=c("--no-multiarch"))
For more info: https://github.com/mne-tools/mne-r/issues/5#issuecomment-489588267

Create a new directory in C: drive as "library"
set your libPath this directory. you need to type
.libPath("C:/library")
reinstall packages which requires java (xlsx, rJava, RJDemetra)
it will give error message again but it will work.

Related

Android Studio: Failed to load JVM DLL

I have thoroughly researched this problem and the posted solutions have not worked for me.
I'm running Windows 8, and the most recent JAVA JDK (64 bit) and Android Studio versions.
[System specs: new XPS 13, core i5, 8GB RAM, SSD]
The exact error is:
Failed to load JVM DLL C:\Program Files\Java\jdk1.8.0_45\jre\bin\client\jvm.dll
If you already have a 64-bit JDK installed, define a JAVA_HOME variable in ... Environment Variables
-- Verification --
java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b15)..
-- Things I've tried --
Uninstall java and AS, reboot, install 64 bit java jdk, verify installation, reboot, install AS, set JAVA_HOME variable
YES, the viable is an Environment variable and not a User variable
I have added the /bin/ directory to the "path" environment variable
I have reversed the slashes in the environment variable paths as per one solution stated
Followed the uninstall/reinstall process stated above, but with a 32bit jdk instead (with the correct environment variable paths)
Done the whole process over (uninstalling, rebooting after installs, etc.) but with older JDKs
I have tried running studio.exe with 32 bit JDK installed, and studio64.exe with the 64 bit JDK installed
I feel like I've tried everything. I HAD to have screwed up somewhere along the line. Any idea?
Try running android studio as Administrator. That worked for me. Try installing a different version of Android Studio.
This worked for me...
Try running studio64.exe instead of studio.exe.
I had to install vcruntime140_1.dll via https://learn.microsoft.com/en-US/cpp/windows/latest-supported-vc-redist?view=msvc-170 to solve the this issue. I used process monitor to see that it was missing.
Tried everything nothing worked. Restarted my laptop, Android Studio works perfectly.
I installed Microsoft Visual C++ X86 or X64 from here and AS started up fine.
you said you have added /bin/ directory to the "path" environment variable, if you are putting C:\Program Files\Java\jdk1.8.0_45\jre\bin .that is wrong it should be C:\Program Files\Java\jdk1.8.0_45\jre\bin\client to path system variable and you put it as first item.
I checked my java installation path. I found jvm.dll is located at C:\Program Files\Java\jdk1.8.0_45\jre\bin\server please check yours.
see the screen shot.
I got it working. I uninstalled everything again. Reinstalled the 64 bit jdk, remade the environment variable, rebooted, reinstalled Android Studio and it still was not working.
I downloaded the 32 bit JDK just got giggles and installed it. I did not uninstall the 64 bit java... I pointed the environment variable to the 32 bit JDK directory and tried to launch Androd studio with the 32 bit .exe (not studio64.exe), and it worked.
I guess I'll have to live without 64 bit.
Thanks for the help, everyone.

Flex mxmlc error loading JVM windows 7 64 bit

I'am executing this command in my windows 7 console:
mxmlc
then I get:
Error loading: C:\Program Files (x86)\Java\jre7\bin\client\jvm.dll
How to fix this?
the jvm.dll exists in that directory, but why the error occurs?, I've tried to reinstall java, but it didn't helped
The flash compiler, mxmlc, does not run under a 64 bit jvm. According to the 4.6 SDK docs:
Note: You must use a 32-bit version of the JDK, version 1.5 or later. The command line compilers do not work with a 64-bit JDK.
Unfortunately, You will need to install a 32 bit jvm.

compile error after upgrading to Java 7: package sun.security.pkcs11 does not exist

I just upgraded from Java 6 to Java 7 SDK and am now getting the following error in my ant build:
error: package sun.security.pkcs11 does not exist
Provider p = new sun.security.pkcs11.SunPKCS11(is);
I'm running Windows 7 64-bit. I can compile fine if I switch back to Java 6, but that is not an option any longer. I haven't had much luck finding a solution online. Anybody knows how to resolve this issue?
You will have to convert your application to use APIs which are not restricted. The compiler will warn you quite strictly when you have done such a thing -- this is the consequence of proceeding in the face of those warnings.
See Why Developers Should Not Write Programs That Call 'sun' Packages
I have faced the same problem and i solve it by installing the 32-bit JDK insteade of 64-bit and sure it will work .
The API has not been released by oracle oracle bug and the answers by tom and yassering are both corect.
Since sunPKCS11 support is not there in Windows 64 bit, i am assuming that you are using windows 64 bit just for build environment and your runtime might be a linux or other supported environments.
If the above is true, then inorder to make the build work, copy the sunpkcs11.jar from a 32 bit jdk and copy to a 64 bit jdk under jre\lib\ext. This worked for me.
Or, alternatively wait for jdk8 where its fixed.
I'm having the same error.
Only a type can be imported. sun.security.pkcs11.wrapper.CK_AES_CTR_PARAMS resolves to a package
I have windows 7 x64 with jdk 7x64 installed then replaced with jdk 7x32. I also made sure that my JAVA_HOME was set to the new jdk installation. I get the same problem when I run my application.

Java Error opening registry key

I get this error when I try to do anything with Java in command prompt:
Error opening registry key 'Software\JavaSoft\Java Runtime Environment.3'
Error: could not find Java.dll
Error: could not find Java 2 Runtime Environment
I did screw around with deleting Java directories and registry a few days ago. I restarted computer and java was still working fine, then i restarted it again today and now I get this error. I have tried uninstalling and reinstalling but that doesn't seem to work. I have the latest java JRE installed and the path set in the environment variables. Anyone have any clue how to fix this?
Make sure you remove any java.exe, javaw.exe and javaws.exe from your Windows\System32 folder and if you have an x64 system (Win 7 64 bits) also do the same under Windows\SysWOW64.
If you can't find them at these locations, try deleting them from C:\ProgramData\Oracle\Java\javapath.
You will find a folder named "Oracle" on ProgramData folder in your windows installed drive. Remove the folder. Hope it will work.
In my case my install drive is C and my path is C:\ProgramData\Oracle
I had a similar problem. I had installed JDK7 update 1 but couldn't use it (probably because I found a JRE6 that I deleted after installing JDK7). Uninstalling JDK7 was impossible. The solution was to add the JRE registry entries by hand.
[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment]
"CurrentVersion"="1.7"
[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.7]
"JavaHome"="C:\\Program Files\\Java\\jre7"
"RuntimeLib"="C:\\Program Files\\Java\\jre7\\bin\\client\\jvm.dll"
[HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.7.0_01]
"JavaHome"="C:\\Program Files\\Java\\jre7"
"RuntimeLib"="C:\\Program Files\\Java\\jre7\\bin\\client\\jvm.dll"
You'll have to adjust the above to your own directories and version.
If this doesn't help, there's still JavaRa https://singularlabs.com/software/javara/ .
Delete these 3 files present in your local at path C:\ProgramData\Oracle\Java\javapath
java.exe
javaw.exe
javaws.exe
This solved the issue for me :)
Make sure you remove any java.exe, javaw.exe and javaws.exe from your system.
if you have an x32 system (Win XP 32 bits) Windows\System32 folder
if you have an x64 system (Win 7 64 bits) also do the same under Windows\SysWOW64 folder
On Windows 10 I had just installed the JDK, and got these errors when checking the version. I had to delete all executable files starting with java (i.e. java.exe, javaw.exe and javaws.exe) from C:\ProgramData\Oracle\Java\javapath. And then, once deleted, re-run the JDK installer, restart my terminal program and java -v works.
There are 3 locations to check
Registry HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\1.8.0_xxx\JavaHome
Java Control Panel- Java tab - View - Path
Environment Variables - Path ($env:Path)
All 3 have to align (if you have multiple entires just remove the wrong ones) - thats all
I had the same:
Error opening registry key 'Software\JavaSoft\Java Runtime Environment
Clearing Windows\SysWOW64 doesn't help for Win7
In my case it installing JDK8 offline helped (from link)
I would have tagged this as a comment but cant (dont have the rep) just wanted to thank Tilman. I was trying to get PDFsam (PDF Split and Merge) to work to no avail.
At launch it would produce an error stating that it could not find JRE 1.6.0. I Have both 32 and 64 bit versions and they check out fine at the java website in their respective browsers.
Tried uninstalling/reinstalling and rebooting repeatedly as well as using JavaRa. No such luck, still no go.
I looked in the registry after reading this post and there was no ...\SOFTWARE\JavaSoft\ key so I added each with their respective string values pointing to my x86 version (PDFsam is a 32bit program). This got past the first problem but an error popped up about amd64 libraries suggesting the machine wanted to run the 64bit version. So I changed the paths to the 64bit JRE and PDFsam now works.
FYI - I got here by searching for Java registry keys after I was unable to launch javaw.exe from command prompt (even after adding the requisite paths to system path), making the aforementioned changes solved this as well.
I got this kind of error whe nI had JDK 1.7 before and I installed JAVA JDK 1.8 and pointed my JAVA_HOME and PATH variables to JAVA 1.8 version. When I try to find the java version I got this error. I restarted my machine, and it works . It seems to be we have to restart the machine after modifying the environment variables.
In case a virus scanner (like McAfee) is running, try:
Disable virus scanner
Uninstall Java (via Control Panel / Programs and Features)
Reinstall Java (from Java.com)
Re-enable virus scanner
Uninstall Java (via Control Panel / Programs and Features)
Install Java JRE 7 --> OFFLINE <--
Configure JAVA_HOME and Path = %JAVA_HOME%/bin;%PATH%
I have Windows 7. I got the same problem after installing: PyCharm.
I wasn't satisfied with PyCharm, so I decided to use Eclipse instead. This is when I discovered that things went wrong with my JDK. I used to have Java.9.x. So I decided to uninstall it and get the newer version (at my time it was Java.11.x. The same problem persisted.
I followed most of the steps mentioned above in the post like:
- Removing all java*.exe files,
- removing Java related entries from the registry.
- Cleaning-up all unnecessary Java folders. However nothing helped. I still had something in the system referring to a broken Java pathname.
What really brought remedy is the following:
- Uninstalled what ever version of JDK I had at the moment.
- Re-Installed the last JDK version I had before the problem took place
- Properly uninstall that version.
- Install whatever latest version of SDK. ..
That's it .. at this point everything returned to normal ... Except that Java.11.xx did not fix the system path automatically, I had to do it manually.
I followed multiple answers from above and got my issue resolved.
Issue:
Javac was on 13 from jdk but java was using 1.8 from jre so java threw incompatible runtime error
Fix:
Under Control Panel -> Programs: I uninstalled 1.8 (named Java 8 runtime) and DID NOT touch the other one (named Java (TM) SE Development Kit 13)
Deleted java.exe, javac.exe and javawc.exe files from:
a. C:\Windows\system32
b. C:\Windows\SysWOW64
c. C:\ProgramData\Oracle\Java\javapath
The environment variable JDK_HOME was pointing to 13 but JAVA_HOME was pointing to 1.8 so i pointed JAVA_HOME to also use 13 which was C:\Program Files\Java\jdk-13.0.1
There was a Path variable under both User variables and system variables sections.
For the one in user variables section, i added the string %JDK_HOME% - which translated automatically to the physical path.
For the one under system variables, I deleted the path C:\ProgramData\Oracle\Java\javapath and added C:\Program Files\Java\jdk-13.0.1\bin
All good now! Thanks to all the people who answered, you rock!
Make sure to delete java references from system32, SysWOW64, and delete javapath from ProgramData\Oracle\Java. It solves the issue
If you have "C:\ProgramData\Oracle\Java\javapath" in your PATH, just make sure that the java bin path entries are present before this entry in your PATH.
I was facing the exact same issue, and I just moved the java jdk/jre bin path entries up in the list, above the oracle entry and it resolved my issue.

Cannot load rJava because cannot load a shared library

I have been struggling to load the rJava package in R.
I get the following messages
> library(rJava)
Error in inDL(x, as.logical(local), as.logical(now), ...) :
unable to load shared library \
'C:/PROGRA~1/R/R-210~1.1/library/rJava/libs/rJava.dll':
LoadLibrary failure: The specified module could not be found.
Error : .onLoad failed in 'loadNamespace' for 'rJava'
Error: package/namespace load failed for 'rJava'
I have tried so many solutions that they are all bamboozeled in my head.
At some point I even got
> R Console: Rgui.exe - System Error The
> program can't start because
> MSVCR71.dll is is missing from your
> computer. Try reinstalling the program
> to fix this problem.
I made sure everything I could think of was on the path
> C:\Program Files\R\Rtools\bin;C:\Program Files\R\Rtools\perl\bin;
C:\Program Files\R\Rtools\MinGW\bin;%SystemRoot%\system32;
%SystemRoot%;%SystemRoot%\System32\Wbem;
%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;
C:\Program Files\QuickTime\QTSystem\;
C:\Program Files\R\R-2.10.1\library\rJava\libs\;
C:\Program Files\R;C:\Program Files\Java\jre6\bin\client
What should I try next?
I am running R version 2.10.1 (2009-12-14) and I have also tried R version 2.10.1 Patched (2010-03-03 r51210). It is on a Windows machine running windows 7 enterprise
If you have read this threat and neither of the suggestions above has worked so far, then it might be worth trying one further:
Windows 7
R version 2.12.1 (2010-12-16) 64-bit
Java(TM) SE Runtime Environment (build 1.6.0_23-b05), Java HotSpot(TM) 64-Bit Server VM (build 19.0-b09, mixed mode)
JAVA_HOME=C:\Program Files\Java\jre6\bin\
Path= ...;C:\Program Files\Java\jre6\bin\server\;C:\Program Files\R\R-2.12.1\bin\x64\
The thing that finally solved my problem was to explicitly add \server\ to the PATH variable.
For what it's worth, putting C:\Program Files\Java\jre6\bin\[server] in my PATH worked for me. It seems the rJava module could jot find jvm.dll there.
Here are the versions of R and Java that I'm using (on 64-bit Windows 7).
Java:
java version "1.6.0_30"
Java(TM) SE Runtime Environment (build 1.6.0_30-b12)
Java HotSpot(TM) 64-Bit Server VM (build 20.5-b03, mixed mode)
R:
R version 2.14.1 (2011-12-22)
Copyright (C) 2011 The R Foundation for Statistical Computing
ISBN 3-900051-07-0
Platform: x86_64-pc-mingw32/x64 (64-bit)
System information:
R version 3.0.1 (2013-05-16)
Platform: x86_64-w64-mingw32/x64 (64-bit)
I encountered this same problem. I was able to solve the issue with one line of code into the command window obtained from this website.
Sys.setenv(JAVA_HOME='C:\Program Files\Java\jre7')
Note that I used this particular line because I was on a 64 bit system. See website for 32-bit example.
Following up on some of Dirk's sage advice:
Your path should probably say C:\Program Files\Java\jre6\bin\ (remove "client").
Your path should also have C:\Program Files\R\R-2.10.1\bin\. You don't need that explicit reference to the rJava libs. I would also then remove C:\Program Files\R from the path.
Lastly, confirm that Java is accessible by either going to your command prompt and typing java -version, or from within R by typing system("java -version").
If you install the SDK, then you will also want a system variable JAVA_HOME which in my case points to C:\Sun\SDK\.
After editing your post for readability / formatting it seems that you have no Java system in your path. I don't use the OS you're trying to use this on, but on mine rJava only works if I also install a Java Run-Time Environment or, better still, a Java SDK.
Note that the package clearly lists
SystemRequirements: java
and that the rJava site clearly states the following
Installation
First, make sure you have
JDK 1.4 or higher installed (some
platforms require hgher version see R
Wiki). On unix systems make sure that
R was configured with Java support. If
not, you can re-configure R by using R
CMD javareconf (you may have to
prepend sudo or run it as root
depending on your installation - see
R-ext manual A.2.2 for details). On
Windows Java is detected at run-time
from the registry.
rJava can be installed as any other R
package from CRAN using
install.packages('rJava'). See the
files section in the left menu for
development versions.
JRI is only compiled if supported,
i.e. if R was configured as a
framework or with --enable-R-shlib.
so I think we have a few smoking guns pointing the same way.
I had a similar error and had to do an additional fix: Setting the R path explicitly to ...bin\x64, and also being consistent in using x64 Java and R.

Categories

Resources