InvocationTargetException/NoClassDefFoundError/ClassNotFoundException при запуске батика (тест DaCapo-9.12-bach)
Я сам собираю OpenJDK 9 и запускаю тесты Dacapo на моем Linux-сервере (64-бит, 64 ядра, 126 ГБ памяти)(Ubuntu 17.10).
я имею InvocationTargetException
/ NoClassDefFoundError
/ ClassNotFoundException
когда я запускаю батик (DaCapo-9.12-бах тест) и некоторые другие тесты.
Вопрос: как это решить и почему я получаю эти исключения?
батик
создает несколько изображений Scalable Vector Graphics (SVG) на основе модульных тестов в Apache Batik
wxf@wxf:/home/wxf/javaPrj/dacapo_benchmark$ /home/wxf/9dev/build/linux-x86_64-normal-server-slowdebug/jdk/bin/java -jar dacapo-9.12-MR1-bach.jar batik
===== DaCapo 9.12-MR1 batik starting =====
About to transcode 3 SVG file(s)
Converting mapWaadt.svg to /home/wxf/javaPrj/dacapo_benchmark/./scratch/mapWaadt.png ... ... success
Converting mapSpain.svg to /home/wxf/javaPrj/dacapo_benchmark/./scratch/mapSpain.png ... ... success
Converting sydney.svg to /home/wxf/javaPrj/dacapo_benchmark/./scratch/sydney.png ... java.lang.reflect.InvocationTargetException
java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at org.dacapo.harness.Batik.iterate(Batik.java:41)
at org.dacapo.harness.Benchmark.run(Benchmark.java:187)
at org.dacapo.harness.TestHarness.runBenchmark(TestHarness.java:199)
at org.dacapo.harness.TestHarness.main(TestHarness.java:152)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at Harness.main(Unknown Source)
Caused by: java.lang.NoClassDefFoundError: com/sun/image/codec/jpeg/TruncatedFileException
at org.apache.batik.ext.awt.image.codec.jpeg.JPEGRegistryEntry.handleStream(JPEGRegistryEntry.java:87)
at org.apache.batik.ext.awt.image.spi.ImageTagRegistry.readURL(ImageTagRegistry.java:189)
at org.apache.batik.bridge.SVGImageElementBridge.createImageGraphicsNode(SVGImageElementBridge.java:257)
at org.apache.batik.bridge.SVGImageElementBridge.buildImageGraphicsNode(SVGImageElementBridge.java:176)
at org.apache.batik.bridge.SVGImageElementBridge.createGraphicsNode(SVGImageElementBridge.java:118)
at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:206)
at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:164)
at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:212)
at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:164)
at org.apache.batik.bridge.GVTBuilder.build(GVTBuilder.java:78)
at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:214)
at org.apache.batik.transcoder.image.ImageTranscoder.transcode(ImageTranscoder.java:92)
at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(XMLAbstractTranscoder.java:142)
at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:159)
at org.apache.batik.apps.rasterizer.SVGConverter.transcode(SVGConverter.java:992)
at org.apache.batik.apps.rasterizer.SVGConverter.execute(SVGConverter.java:715)
at org.apache.batik.apps.rasterizer.Main.execute(Main.java:938)
... 13 more
Caused by: java.lang.ClassNotFoundException: com.sun.image.codec.jpeg.TruncatedFileException
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:466)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:563)
at org.dacapo.harness.DacapoClassLoader.loadClass(DacapoClassLoader.java:123)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
... 30 more
Однако, если я использую JDK8 от Oracle, батик может работать.
Java-версия "1.8.0_144"
Java (TM) SE Runtime Environment (сборка 1.8.0_144-b01)
Java HotSpot (TM) 64-разрядная серверная виртуальная машина (сборка 25.144-b01, смешанный режим)
Результат:
wxf@wxf:/home/wxf/javaPrj/dacapo_benchmark$ java -jar dacapo-9.12-MR1-bach.jar batik
===== DaCapo 9.12-MR1 batik starting =====
About to transcode 3 SVG file(s)
Converting mapWaadt.svg to /home/wxf/javaPrj/dacapo_benchmark/./scratch/mapWaadt.png ... ... success
Converting mapSpain.svg to /home/wxf/javaPrj/dacapo_benchmark/./scratch/mapSpain.png ... ... success
Converting sydney.svg to /home/wxf/javaPrj/dacapo_benchmark/./scratch/sydney.png ... ... success
===== DaCapo 9.12-MR1 batik PASSED in 3687 msec =====