Received error while running java-example image

12 views
Skip to first unread message

Raphael S. Carvalho

unread,
Mar 11, 2015, 3:24:39 PM3/11/15
to osv-dev
Has anyone a clue on why it happened? Has it something to do with the version of my java?


[raphaelsc@localhost osv]$ sudo scripts/run.py -e "java.so -cp /java-example Hello"
[sudo] password for raphaelsc:
OSv v0.17-12-ge9af4c9
eth0: 192.168.122.15
io.osv.ContextFailedException: java.lang.UnsupportedClassVersionError: Hello : Unsupported major.minor version 52.0
    at io.osv.Context.join(Context.java:63)
    at io.osv.ContextIsolator.runSync(ContextIsolator.java:146)
    at io.osv.RunJava.main(RunJava.java:35)
Caused by: java.lang.UnsupportedClassVersionError: Hello : Unsupported major.minor version 52.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at io.osv.ContextIsolator.loadClass(ContextIsolator.java:273)
    at io.osv.ContextIsolator.access$300(ContextIsolator.java:32)
    at io.osv.ContextIsolator$3.run(ContextIsolator.java:118)

Regards,
--
Raphael S. Carvalho

Nadav Har'El

unread,
Mar 11, 2015, 4:59:49 PM3/11/15
to Raphael S. Carvalho, osv-dev
On Wed, Mar 11, 2015 at 9:24 PM, Raphael S. Carvalho <raph...@cloudius-systems.com> wrote:
Has anyone a clue on why it happened? Has it something to do with the version of my java?

[raphaelsc@localhost osv]$ sudo scripts/run.py -e "java.so -cp /java-example Hello"
[sudo] password for raphaelsc:
OSv v0.17-12-ge9af4c9
eth0: 192.168.122.15
io.osv.ContextFailedException: java.lang.UnsupportedClassVersionError: Hello : Unsupported major.minor version 52.0


Yes indeed: Your java.so is Java 7 (this is the default for our "make image=java") while you compiled Hello.class using Java 8 (this is the default on Fedora 21, for example).
The JRE 7 was not able to run a class file compield with JDK 8's compiler.

You have two options - either use Java 8 on your image ("make image=openjdk8-fedora"), or compile Hello.class for Java 7. Doing the latter is very easy, you can see an example in apps/java-example: basically you need to run "javac -target 7 -source 7 ..." (or if you're not using javac directly, figure out how to do that in however you compile).

You can find the list of Java class major numbers here: http://en.wikipedia.org/wiki/Java_class_file#General_layout

 
    at io.osv.Context.join(Context.java:63)
    at io.osv.ContextIsolator.runSync(ContextIsolator.java:146)
    at io.osv.RunJava.main(RunJava.java:35)
Caused by: java.lang.UnsupportedClassVersionError: Hello : Unsupported major.minor version 52.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at io.osv.ContextIsolator.loadClass(ContextIsolator.java:273)
    at io.osv.ContextIsolator.access$300(ContextIsolator.java:32)
    at io.osv.ContextIsolator$3.run(ContextIsolator.java:118)

Regards,
--
Raphael S. Carvalho

--
You received this message because you are subscribed to the Google Groups "OSv Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to osv-dev+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Reply all
Reply to author
Forward
0 new messages