0

I am following the MonetDB install procedure described by Hannes Mühleisen by running commands 1 to 6 described below.

how do I install MonetDB on Centos 6.5?

  1. sudo yum install openssl-devel pcre-devel
  2. tar xvf MonetDB-.tar.
  3. cd MonetDB-*
  4. ./configure
  5. make
  6. sudo make install ---> Fails in this Step

The machines Java Home is /usr/lib/java/jdk1.8.0_25. Apparently, the install is trying to find a 1.7 version somewhere else

Here is the error text

make[4]: Entering directory `/usr/local/MonetDB-11.15.19/java/tests'
make  all-am
make[5]: Entering directory `/usr/local/MonetDB-11.15.19/java/tests'
"/usr/local/ant/bin/ant" -f "`readlink -f ./build.xml`" -Dbuilddir="`readlink -f /usr/local/MonetDB-11.15.19/java/tests/jar_jdbctests`" -Djardir="`readlink -f /usr/local/MonetDB-11.15.19/java/tests`" -Dbasedir="`readlink -f .`" jar_jdbctests
Unable to locate tools.jar. Expected to find it in /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.75.x86_64/lib/tools.jar
Buildfile: /usr/local/MonetDB-11.15.19/java/tests/build.xml

prepare:

find_driver:

BUILD FAILED
/usr/local/MonetDB-11.15.19/java/tests/build.xml:87: java.lang.UnsupportedClassVersionError: nl/cwi/monetdb/jdbc/MonetDriver : Unsupported major.minor version 52.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
    at org.apache.tools.ant.AntClassLoader.defineClassFromData(AntClassLoader.java:1136)
    at org.apache.tools.ant.AntClassLoader.getClassFromStream(AntClassLoader.java:1307)
    at org.apache.tools.ant.AntClassLoader.findClassInComponents(AntClassLoader.java:1362)
    at org.apache.tools.ant.AntClassLoader.findClass(AntClassLoader.java:1323)
    at org.apache.tools.ant.AntClassLoader.loadClass(AntClassLoader.java:1076)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at org.apache.tools.ant.taskdefs.Available.checkClass(Available.java:454)
    at org.apache.tools.ant.taskdefs.Available.eval(Available.java:285)
    at org.apache.tools.ant.taskdefs.condition.And.eval(And.java:42)
    at org.apache.tools.ant.taskdefs.ConditionTask.execute(ConditionTask.java:120)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
    at org.apache.tools.ant.TaskAdapter.execute(TaskAdapter.java:154)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.Target.execute(Target.java:435)
    at org.apache.tools.ant.Target.performTasks(Target.java:456)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1364)
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1248)
    at org.apache.tools.ant.Main.runBuild(Main.java:851)
    at org.apache.tools.ant.Main.startAnt(Main.java:235)
    at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
    at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
Community
  • 1
  • 1
user2238704
  • 121
  • 8

1 Answers1

0

I think there are two different Java VMs installed on this machine, and for some reason (suspect per-user setting of $JAVA_HOME and/or $PATH) lead to the make using 1.8 and sudo make install using 1.7. The UnsupportedClassVersionError at least suggests this. I suggest you make sure only one version is used.

For CentOS, this should do it:

sudo /usr/sbin/alternatives --config java
sudo /usr/sbin/alternatives --config javac

Update: Turns out MonetDB now provides CentOS rpms: https://www.monetdb.org/downloads/epel/

Hannes Mühleisen
  • 2,542
  • 11
  • 13
  • Neither of it is the case. Java home is /usr/lib/java/jdk1.8.0_25 Path is /usr/lib/java/jdk1.8.0_25/bin:/installables/hadoop-2.4.1/bin:/installables/spark-1.3.iip/bin:/installables/R-3.1.3/bin:/usr/lib64/qt-.3/bin:/usr/local/maven/bin:/usr/local/ant/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin – user2238704 Mar 20 '15 at 09:38
  • Of course, if you do not need the Java (JDBC) driver, you could also switch it off by running ```./configure --without-java``` – Hannes Mühleisen Mar 20 '15 at 09:41
  • I forgot to add. We also have Hadoop and Apache Spark installed on that machine. All those tools use the 1.8 home and work well. I cant figure out where MonetDB is taking the 1.7 home from. – user2238704 Mar 20 '15 at 09:41
  • Unfortunately, we need the Java JDBC driver :-(. We have been disillusioned by a lot of other open source databases. We really want to get MonetDB working as we have heard good reviews. Your help is deeply appreciated. – user2238704 Mar 20 '15 at 09:42
  • Stand by. Testing this right now. And make sure your ```root``` account also uses java 1.8 by default – Hannes Mühleisen Mar 20 '15 at 09:43
  • Did you run ```sudo /usr/sbin/alternatives --config java``` and ```sudo /usr/sbin/alternatives --config javac``` to set them to the 1.8 versions? – Hannes Mühleisen Mar 20 '15 at 11:59
  • Thanks Hannes. That was the problem. Once i set it , it worked. – user2238704 Mar 24 '15 at 06:47