neo4j: java.security.NoSuchAlgorithmException: Algorithm [JKS] of type [KeyStore] from provider [org.bouncycastle.jce.provider.BouncyCastleProvider: name=BC version=1.4]
I’ve spent the last couple of hours moving my neo4j graph from my own machine onto a vanilla CentOS VM and initially tried to run neo using a non Sun version of Java which I installed like so:
yum install java
This is the version of Java that was installed:
$ java -version
java version "1.5.0"
gij (GNU libgcj) version 4.4.6 20120305 (Red Hat 4.4.6-4)
When I tried to start neo4j:
neo4j/bin/neo4j start
I ended up with the following exception in the neo4j log @ neo4j/data/log/neo4j.0.0.log:
Caused by: java.security.NoSuchAlgorithmException: Algorithm [JKS] of type [KeyStore]
from provider [org.bouncycastle.jce.provider.BouncyCastleProvider: name=BC version=1.4] is not found
I assumed this algorithm was only being packaged with the Sun JDK (although the website suggests otherwise) so I’d need to replace my version of Java to get it working.
I got the 64 bit '.bin' file from the Oracle download page and then installed it using rpm:
rpm -ivh jdk-6u33-linux-x64-rpm.bin
I now have this version of Java installed and neo4j is much happier:
java -version
java version "1.6.0_33"
Java(TM) SE Runtime Environment (build 1.6.0_33-b04)
Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03, mixed mode)
After googling around for a bit I’m still not entirely sure why it wasn’t able to work with the original version of Java I installed so if anyone could point me in the direction that’d be useful.
About the author
I'm currently working on short form content at ClickHouse. I publish short 5 minute videos showing how to solve data problems on YouTube @LearnDataWithMark. I previously worked on graph analytics at Neo4j, where I also co-authored the O'Reilly Graph Algorithms Book with Amy Hodler.