java.lang.NoClassDefFoundError: com/oracle/truffle/api/TruffleRuntimeAccess while running with self built Graal JDK

Doug Simon doug.simon at oracle.com
Tue Nov 24 00:01:25 UTC 2015


> On 24 Nov 2015, at 00:52, Renze Torensma <renzetorensma at gmail.com> wrote:
> 
> Thanks that does work indeed! Any idea how I can also get Eclipse working? When I add —jdk jvmci as VM argument I get:
> 
> Unrecognized option: --jdk
> Error: Could not create the Java Virtual Machine.
> Error: A fatal exception has occurred. Program will exit.

That’s because --jdk is a mx option, not a VM option. You need to look at the command line issued by mx to see how to configure the VM arguments in Eclipse. You probably need to add:

-Djvmci.compiler=graal -Xbootclasspath/p:/Users/Renze/Desktop/Scriptie/Workspace/graal/truffle/mxbuild/dists/truffle-api.jar

-Doug

>> On 24 nov. 2015, at 00:38, Doug Simon <doug.simon at oracle.com> wrote:
>> 
>> Sorry, I’m not that familiar with the sl command so didn’t see the issue straight away. You need to use the --jdk option. E.g.:
>> 
>> dsimon at kurz ~/g/graal-compiler> mx -v --jdk jvmci sl ../truffle/truffle/com.oracle.truffle.sl.test/src/tests/HelloWorld.sl
>> /Users/dsimon/graal/graal-jvmci-8/jdk1.8.0_65/product/bin/java -jvmci -d64 -Djvmci.compiler=graal -Xbootclasspath/p:/Users/dsimon/graal/truffle/mxbuild/dists/truffle-api.jar -cp /Users/dsimon/graal/truffle/mxbuild/dists/truffle-api.jar:/Users/dsimon/graal/truffle/mxbuild/truffle/com.oracle.truffle.sl/bin com.oracle.truffle.sl.SLLanguage ../truffle/truffle/com.oracle.truffle.sl.test/src/tests/HelloWorld.sl
>> Hello World!
>> 
>> -Doug
>> 
>>> On 24 Nov 2015, at 00:30, Renze Torensma <renzetorensma at gmail.com> wrote:
>>> 
>>> When I select the Oracle JDK it works:
>>> 
>>> Renzes-MacBook-Air:graal-compiler Renze$ mx -v  sl ../truffle/truffle/com.oracle.truffle.sl.test/src/tests/HelloWorld.sl
>>> Please select a default JDK: 
>>> [1] Java 1.8.0_66 (1.8) from /Library/Java/JavaVirtualMachines/jdk1.8.0_66.jdk/Contents/Home
>>> [2] Java 1.8.0_60 (1.8) from /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home
>>> [3] Java 1.7.0_75 (1.7) from /Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home
>>> [4] Java 1.6.0_65 (1.6) from /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
>>> [5] <other>
>>> Enter number of selection: 2
>>> /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/bin/java -d64 -cp /Users/Renze/Desktop/Scriptie/Workspace/graal/truffle/mxbuild/dists/truffle-api.jar:/Users/Renze/Desktop/Scriptie/Workspace/graal/truffle/mxbuild/truffle/com.oracle.truffle.sl/bin com.oracle.truffle.sl.SLLanguage ../truffle/truffle/com.oracle.truffle.sl.test/src/tests/HelloWorld.sl
>>> Hello World!
>>> 
>>> 
>>> When I select the Graal JDK I get the same error:
>>> 
>>> Renzes-MacBook-Air:graal-compiler Renze$ mx -v  sl ../truffle/truffle/com.oracle.truffle.sl.test/src/tests/HelloWorld.sl
>>> Please select a default JDK: 
>>> [1] Java 1.8.0_66 (1.8) from /Library/Java/JavaVirtualMachines/jdk1.8.0_66.jdk/Contents/Home
>>> [2] Java 1.8.0_60 (1.8) from /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home
>>> [3] Java 1.7.0_75 (1.7) from /Library/Java/JavaVirtualMachines/jdk1.7.0_75.jdk/Contents/Home
>>> [4] Java 1.6.0_65 (1.6) from /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
>>> [5] <other>
>>> Enter number of selection: 5
>>> Enter path of JDK: /Users/Renze/Desktop/Scriptie/Workspace/graal/jvmci/jdk1.8.0_60/product
>>> /Users/Renze/Desktop/Scriptie/Workspace/graal/jvmci/jdk1.8.0_60/product/bin/java -d64 -cp /Users/Renze/Desktop/Scriptie/Workspace/graal/truffle/mxbuild/dists/truffle-api.jar:/Users/Renze/Desktop/Scriptie/Workspace/graal/truffle/mxbuild/truffle/com.oracle.truffle.sl/bin com.oracle.truffle.sl.SLLanguage ../truffle/truffle/com.oracle.truffle.sl.test/src/tests/HelloWorld.sl
>>> Exception in thread "main" java.lang.InternalError
>>> 	at com.oracle.truffle.api.Truffle$1.run(Truffle.java:86)
>>> 	at com.oracle.truffle.api.Truffle$1.run(Truffle.java:1)
>>> 	at java.security.AccessController.doPrivileged(Native Method)
>>> 	at com.oracle.truffle.api.Truffle.initRuntime(Truffle.java:47)
>>> 	at com.oracle.truffle.api.Truffle.<clinit>(Truffle.java:37)
>>> 	at com.oracle.truffle.api.impl.Accessor.<clinit>(Accessor.java:270)
>>> 	at com.oracle.truffle.api.TruffleLanguage.<clinit>(TruffleLanguage.java:441)
>>> Caused by: java.lang.reflect.InvocationTargetException
>>> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>> 	at java.lang.reflect.Method.invoke(Method.java:497)
>>> 	at com.oracle.truffle.api.Truffle$1.run(Truffle.java:83)
>>> 	... 6 more
>>> Caused by: java.lang.NoClassDefFoundError: com/oracle/truffle/api/TruffleRuntimeAccess  (suppress with -Djvmci.service.suppressNoClassDefFoundError=true)
>>> 	at jdk.vm.ci.service.Services$1.computeValue(Services.java:59)
>>> 	at jdk.vm.ci.service.Services$1.computeValue(Services.java:50)
>>> 	at java.lang.ClassValue.getFromHashMap(ClassValue.java:227)
>>> 	at java.lang.ClassValue.getFromBackup(ClassValue.java:209)
>>> 	at java.lang.ClassValue.get(ClassValue.java:115)
>>> 	at jdk.vm.ci.service.Services.loadSingle(Services.java:105)
>>> 	... 11 more
>>> Caused by: java.lang.ClassNotFoundException: com.oracle.truffle.api.TruffleRuntimeAccess
>>> 	at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
>>> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>>> 	at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:814)
>>> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>>> 	at java.lang.ClassLoader.defineClass1(Native Method)
>>> 	at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
>>> 	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
>>> 	at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
>>> 	at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
>>> 	at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
>>> 	at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
>>> 	at java.security.AccessController.doPrivileged(Native Method)
>>> 	at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
>>> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>>> 	at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:814)
>>> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>>> 	at jdk.vm.ci.service.Services.getServiceImpls(Native Method)
>>> 	at jdk.vm.ci.service.Services.access$000(Services.java:37)
>>> 	at jdk.vm.ci.service.Services$1.computeValue(Services.java:54)
>>> 	... 16 more
>>> [exit code: 1]
>>>  File "/Users/Renze/Desktop/Scriptie/Workspace/mx/mx.py", line 11500, in <module>
>>>    main()
>>>  File "/Users/Renze/Desktop/Scriptie/Workspace/mx/mx.py", line 11484, in main
>>>    retcode = c(command_args)
>>>  File "/Users/Renze/Desktop/Scriptie/Workspace/graal/truffle/mx.truffle/mx_truffle.py", line 46, in sl
>>>    mx.run_java(vmArgs + ['-cp', mx.classpath(["TRUFFLE_API", "com.oracle.truffle.sl"]), "com.oracle.truffle.sl.SLLanguage"] + slArgs)
>>>  File "/Users/Renze/Desktop/Scriptie/Workspace/mx/mx.py", line 6435, in run_java
>>>    return jdk.run_java(args, nonZeroIsFatal=nonZeroIsFatal, out=out, err=err, cwd=cwd, timeout=timeout, env=env, addDefaultArgs=addDefaultArgs)
>>>  File "/Users/Renze/Desktop/Scriptie/Workspace/mx/mx.py", line 6893, in run_java
>>>    return run(cmd, nonZeroIsFatal=nonZeroIsFatal, out=out, err=err, cwd=cwd)
>>>  File "/Users/Renze/Desktop/Scriptie/Workspace/mx/mx.py", line 6620, in run
>>>    abort(retcode)
>>>  File "/Users/Renze/Desktop/Scriptie/Workspace/mx/mx.py", line 7109, in abort
>>>    traceback.print_stack()
>>> 
>>> 
>>> Renze
>>> 
>>>> On 24 nov. 2015, at 00:13, Doug Simon <doug.simon at oracle.com> wrote:
>>>> 
>>>> What happens when you run this in your graal-compiler directory:
>>>> 
>>>> mx -v  sl ../truffle/truffle/com.oracle.truffle.sl.test/src/tests/HelloWorld.sl
>>>> 
>>>> -Doug
>>>> 
>>>>> On 23 Nov 2015, at 23:56, Renze Torensma <renzetorensma at gmail.com> wrote:
>>>>> 
>>>>> Hi,
>>>>> 
>>>>> After following the instructions on the wiki page for building a Graal VM (https://wiki.openjdk.java.net/display/Graal/Instructions <https://wiki.openjdk.java.net/display/Graal/Instructions>) and setting up Eclipse (https://wiki.openjdk.java.net/display/Graal/Eclipse <https://wiki.openjdk.java.net/display/Graal/Eclipse>) I managed to get SL running on a normal JDK (1.8.0_60) but when I select the Graal JDK I built (same version, 1.8.0_60) as alternative JRE I get a java.lang.InternalError:
>>>>> 
>>>>> Exception in thread "main" java.lang.InternalError
>>>>> 	at com.oracle.truffle.api.Truffle$1.run(Truffle.java:86)
>>>>> 	at com.oracle.truffle.api.Truffle$1.run(Truffle.java:1)
>>>>> 	at java.security.AccessController.doPrivileged(Native Method)
>>>>> 	at com.oracle.truffle.api.Truffle.initRuntime(Truffle.java:47)
>>>>> 	at com.oracle.truffle.api.Truffle.<clinit>(Truffle.java:37)
>>>>> 	at com.oracle.truffle.api.impl.Accessor.<clinit>(Accessor.java:270)
>>>>> 	at com.oracle.truffle.api.TruffleLanguage.<clinit>(TruffleLanguage.java:441)
>>>>> Caused by: java.lang.reflect.InvocationTargetException
>>>>> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>>>>> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>>> 	at java.lang.reflect.Method.invoke(Method.java:497)
>>>>> 	at com.oracle.truffle.api.Truffle$1.run(Truffle.java:83)
>>>>> 	... 6 more
>>>>> Caused by: java.lang.NoClassDefFoundError: com/oracle/truffle/api/TruffleRuntimeAccess  (suppress with -Djvmci.service.suppressNoClassDefFoundError=true)
>>>>> 	at jdk.vm.ci.service.Services$1.computeValue(Services.java:59)
>>>>> 	at jdk.vm.ci.service.Services$1.computeValue(Services.java:50)
>>>>> 	at java.lang.ClassValue.getFromHashMap(ClassValue.java:227)
>>>>> 	at java.lang.ClassValue.getFromBackup(ClassValue.java:209)
>>>>> 	at java.lang.ClassValue.get(ClassValue.java:115)
>>>>> 	at jdk.vm.ci.service.Services.loadSingle(Services.java:105)
>>>>> 	... 11 more
>>>>> 
>>>>> The workspace reports 0 problems, even no warnings about deprecated code which seems a little odd to me. I’m not sure what I’m doing wrong, and I don’t really know how to use the provided Truffle and Graal builds on http://lafo.ssw.uni-linz.ac.at/builds <http://lafo.ssw.uni-linz.ac.at/builds> to check if that would fix the problem. I tested on Eclipse Luna and Eclipse Mars and with JDK 1.8.0_60 and 1.8.0_66 but the error happens in all cases.
>>>>> 
>>>>> Thanks,
>>>>> Renze
>>>> 
>>> 
>> 
> 



More information about the graal-dev mailing list