WALA
WALA copied to clipboard
New versions of Java
Hello, we are using WALA 1.5.2 (via Maven). Due to my best knowledge, it runs on Java 8 JDK / JRE and it is capable of analyzing bytecode of programs written in Java 8 or lower.
My first question is: Can I somehow make it run on JDK / JRE of Java 9 / Java 10 / Java 11?
I have tried to run WALA on each of them and I obtained following exception: com.ibm.wala.ipa.cha.ClassHierarchyException: failed to load root <Primordial,Ljava/lang/Object>
. I have found in mailing list and documentation, that it might be solved by modification of WALA's property file. However, I have noticed that structure of new Java JDK / JRE versions has changes (rt.jar / core.jar files are not present in newer Java versions), so I was wondering whether modification of WALA property file still could solve this issue or there exists other way how to make it run on newer Java versions.
My second question is: Is it planned to extends analysis done by WALA to bytecode of Java 9 / Java 10 / Java 11 programs in future?
Thanks for the report, @meciarm. For now, I believe you should be able to make WALA run on Java 9+ by modifying the property file to point to a JDK 8 rt.jar. I have not tried this personally, and if you could give it a try I would appreciate it if you reported back on if it worked.
We do plan to fix WALA so it runs out of the box on JDK 11, analyzing the libraries distributed with JDK 11. My hope is we are able to get something going in the next couple of months, but I can't promise anything. I'd be happy to mentor anyone who is interested in contributing a fix here.
Hello,
I would like to provide a feedback on the suggestion of @msridhar . I have been able to successfully run WALA on Java 9+ by adding wala.properties
file to my classpath, with java_runtime_dir
property set to a path of a directory containing JDK 8 rt.jar
. Thanks for the tip.
I could run WALA on Java 16.0.1 with adding JRE 8 path to wala.properties. Thanks a lot.
FWIW, I believe the WALA master
branch should at least not crash now for input programs using Java 11 bytecodes. We still don't have full support for all features, like modules.