webglearth / webglearth2

[UNMAINTAINED] WebGL Earth 2 - the source code of the project
Apache License 2.0
888 stars 212 forks source link

plovr isn't working #91

Open r-barnes opened 7 years ago

r-barnes commented 7 years ago

I've tried building myself, according to these instructions from README.md.

At first the build failed because it could not find plovr:

java -jar plovr-2.0.0.jar build api.json > deploy/api_nocesium.js
Error: Unable to access jarfile plovr-2.0.0.jar

I ran plovr myself as follows:

plovr build api.json > deploy/api_nocesium.js

This gave the following error:

Exception in thread "main" java.lang.NoSuchFieldError: preferIPv6Address
    at java.base/java.net.InetAddress.init(Native Method)
    at java.base/java.net.InetAddress.<clinit>(InetAddress.java:333)
    at java.base/java.net.NetworkInterface.init(Native Method)
    at java.base/java.net.NetworkInterface.<clinit>(NetworkInterface.java:68)
    at java.base/sun.security.provider.SeedGenerator.addNetworkAdapterInfo(SeedGenerator.java:229)
    at java.base/sun.security.provider.SeedGenerator.access$000(SeedGenerator.java:80)
    at java.base/sun.security.provider.SeedGenerator$1.run(SeedGenerator.java:179)
    at java.base/sun.security.provider.SeedGenerator$1.run(SeedGenerator.java:167)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.base/sun.security.provider.SeedGenerator.getSystemEntropy(SeedGenerator.java:167)
    at java.base/sun.security.provider.AbstractDrbg$SeederHolder.<clinit>(AbstractDrbg.java:551)
    at java.base/sun.security.provider.AbstractDrbg.getEntropyInput(AbstractDrbg.java:505)
    at java.base/sun.security.provider.AbstractDrbg.getEntropyInput(AbstractDrbg.java:494)
    at java.base/sun.security.provider.AbstractDrbg.instantiateIfNecessary(AbstractDrbg.java:696)
    at java.base/sun.security.provider.AbstractDrbg.engineNextBytes(AbstractDrbg.java:378)
    at java.base/sun.security.provider.AbstractDrbg.engineNextBytes(AbstractDrbg.java:334)
    at java.base/sun.security.provider.DRBG.engineNextBytes(DRBG.java:233)
    at java.base/java.security.SecureRandom.nextBytes(SecureRandom.java:742)
    at java.base/java.security.SecureRandom.next(SecureRandom.java:799)
    at java.base/java.util.Random.nextLong(Random.java:424)
    at java.base/java.io.File$TempDirectory.generateFile(File.java:1917)
    at java.base/java.io.File.createTempFile(File.java:2065)
    at java.base/java.io.File.createTempFile(File.java:2125)
    at org.plovr.Config.getCompilerOptions(Config.java:818)
    at org.plovr.Compilation.createAndCompile(Compilation.java:116)
    at org.plovr.cli.BuildCommand.runCommandWithOptions(BuildCommand.java:60)
    at org.plovr.cli.BuildCommand.runCommandWithOptions(BuildCommand.java:31)
    at org.plovr.cli.AbstractCommandRunner.runCommand(AbstractCommandRunner.java:41)
    at org.plovr.cli.Command.execute(Command.java:47)
    at org.plovr.cli.Main.mainWithExitCode(Main.java:56)
    at org.plovr.cli.Main.main(Main.java:30)

Which may stem from the plovr now being at 7.0.1 while the README specifies 2.0.0. Accordingly, I obtained 2.0.0 from here.

But this caused its own mess:

Exception in thread "main" java.lang.ExceptionInInitializerError
    at org.plovr.cli.BuildCommand.runCommandWithOptions(BuildCommand.java:57)
    at org.plovr.cli.BuildCommand.runCommandWithOptions(BuildCommand.java:30)
    at org.plovr.cli.AbstractCommandRunner.runCommand(AbstractCommandRunner.java:41)
    at org.plovr.cli.Command.execute(Command.java:47)
    at org.plovr.cli.Main.mainWithExitCode(Main.java:56)
    at org.plovr.cli.Main.main(Main.java:30)
Caused by: com.google.inject.internal.util.$ComputationException: java.lang.ExceptionInInitializerError
    at com.google.inject.internal.util.$MapMaker$StrategyImpl.compute(MapMaker.java:553)
    at com.google.inject.internal.util.$MapMaker$StrategyImpl.compute(MapMaker.java:419)
    at com.google.inject.internal.util.$CustomConcurrentHashMap$ComputingImpl.get(CustomConcurrentHashMap.java:2041)
    at com.google.inject.internal.FailableCache.get(FailableCache.java:50)
    at com.google.inject.internal.ConstructorInjectorStore.get(ConstructorInjectorStore.java:49)
    at com.google.inject.internal.ConstructorBindingImpl.initialize(ConstructorBindingImpl.java:125)
    at com.google.inject.internal.InjectorImpl.initializeBinding(InjectorImpl.java:507)
    at com.google.inject.internal.AbstractBindingProcessor$Processor$1.run(AbstractBindingProcessor.java:159)
    at com.google.inject.internal.ProcessedBindingData.initializeBindings(ProcessedBindingData.java:44)
    at com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:122)
    at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:106)
    at com.google.inject.Guice.createInjector(Guice.java:95)
    at com.google.inject.Guice.createInjector(Guice.java:72)
    at com.google.inject.Guice.createInjector(Guice.java:62)
    at com.google.template.soy.SoyFileSet.builder(SoyFileSet.java:112)
    at org.plovr.CompileRequestHandler.<clinit>(CompileRequestHandler.java:34)
    ... 6 more
Caused by: java.lang.ExceptionInInitializerError
    at com.google.inject.internal.cglib.reflect.$FastClassEmitter.<init>(FastClassEmitter.java:67)
    at com.google.inject.internal.cglib.reflect.$FastClass$Generator.generateClass(FastClass.java:72)
    at com.google.inject.internal.cglib.core.$DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
    at com.google.inject.internal.cglib.core.$AbstractClassGenerator.create(AbstractClassGenerator.java:216)
    at com.google.inject.internal.cglib.reflect.$FastClass$Generator.create(FastClass.java:64)
    at com.google.inject.internal.BytecodeGen.newFastClass(BytecodeGen.java:207)
    at com.google.inject.internal.DefaultConstructionProxyFactory.create(DefaultConstructionProxyFactory.java:53)
    at com.google.inject.internal.ProxyFactory.create(ProxyFactory.java:153)
    at com.google.inject.internal.ConstructorInjectorStore.createConstructor(ConstructorInjectorStore.java:89)
    at com.google.inject.internal.ConstructorInjectorStore.access$000(ConstructorInjectorStore.java:28)
    at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:36)
    at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:32)
    at com.google.inject.internal.FailableCache$1.apply(FailableCache.java:39)
    at com.google.inject.internal.util.$MapMaker$StrategyImpl.compute(MapMaker.java:549)
    ... 21 more
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) throws java.lang.ClassFormatError accessible: module java.base does not "opens java.lang" to unnamed module @3561c410
    at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:335)
    at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:278)
    at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:196)
    at java.base/java.lang.reflect.Method.setAccessible(Method.java:190)
    at com.google.inject.internal.cglib.core.$ReflectUtils$2.run(ReflectUtils.java:56)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at com.google.inject.internal.cglib.core.$ReflectUtils.<clinit>(ReflectUtils.java:46)
    ... 35 more
Makefile:17: recipe for target 'build' failed
make: *** [build] Error 1
rick@sally:~/projects/rwebglearth/inst/htmlwidgets/lib/webglearth2$ 
rick@sally:~/projects/rwebglearth/inst/htmlwidgets/lib/webglearth2$ 
rick@sally:~/projects/rwebglearth/inst/htmlwidgets/lib/webglearth2$ 
rick@sally:~/projects/rwebglearth/inst/htmlwidgets/lib/webglearth2$ 
rick@sally:~/projects/rwebglearth/inst/htmlwidgets/lib/webglearth2$ java -jar plovr-2.0.0.jar build api.json > deploy/api_nocesium.js
Exception in thread "main" java.lang.ExceptionInInitializerError
    at org.plovr.cli.BuildCommand.runCommandWithOptions(BuildCommand.java:57)
    at org.plovr.cli.BuildCommand.runCommandWithOptions(BuildCommand.java:30)
    at org.plovr.cli.AbstractCommandRunner.runCommand(AbstractCommandRunner.java:41)
    at org.plovr.cli.Command.execute(Command.java:47)
    at org.plovr.cli.Main.mainWithExitCode(Main.java:56)
    at org.plovr.cli.Main.main(Main.java:30)
Caused by: com.google.inject.internal.util.$ComputationException: java.lang.ExceptionInInitializerError
    at com.google.inject.internal.util.$MapMaker$StrategyImpl.compute(MapMaker.java:553)
    at com.google.inject.internal.util.$MapMaker$StrategyImpl.compute(MapMaker.java:419)
    at com.google.inject.internal.util.$CustomConcurrentHashMap$ComputingImpl.get(CustomConcurrentHashMap.java:2041)
    at com.google.inject.internal.FailableCache.get(FailableCache.java:50)
    at com.google.inject.internal.ConstructorInjectorStore.get(ConstructorInjectorStore.java:49)
    at com.google.inject.internal.ConstructorBindingImpl.initialize(ConstructorBindingImpl.java:125)
    at com.google.inject.internal.InjectorImpl.initializeBinding(InjectorImpl.java:507)
    at com.google.inject.internal.AbstractBindingProcessor$Processor$1.run(AbstractBindingProcessor.java:159)
    at com.google.inject.internal.ProcessedBindingData.initializeBindings(ProcessedBindingData.java:44)
    at com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:122)
    at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:106)
    at com.google.inject.Guice.createInjector(Guice.java:95)
    at com.google.inject.Guice.createInjector(Guice.java:72)
    at com.google.inject.Guice.createInjector(Guice.java:62)
    at com.google.template.soy.SoyFileSet.builder(SoyFileSet.java:112)
    at org.plovr.CompileRequestHandler.<clinit>(CompileRequestHandler.java:34)
    ... 6 more
Caused by: java.lang.ExceptionInInitializerError
    at com.google.inject.internal.cglib.reflect.$FastClassEmitter.<init>(FastClassEmitter.java:67)
    at com.google.inject.internal.cglib.reflect.$FastClass$Generator.generateClass(FastClass.java:72)
    at com.google.inject.internal.cglib.core.$DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
    at com.google.inject.internal.cglib.core.$AbstractClassGenerator.create(AbstractClassGenerator.java:216)
    at com.google.inject.internal.cglib.reflect.$FastClass$Generator.create(FastClass.java:64)
    at com.google.inject.internal.BytecodeGen.newFastClass(BytecodeGen.java:207)
    at com.google.inject.internal.DefaultConstructionProxyFactory.create(DefaultConstructionProxyFactory.java:53)
    at com.google.inject.internal.ProxyFactory.create(ProxyFactory.java:153)
    at com.google.inject.internal.ConstructorInjectorStore.createConstructor(ConstructorInjectorStore.java:89)
    at com.google.inject.internal.ConstructorInjectorStore.access$000(ConstructorInjectorStore.java:28)
    at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:36)
    at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:32)
    at com.google.inject.internal.FailableCache$1.apply(FailableCache.java:39)
    at com.google.inject.internal.util.$MapMaker$StrategyImpl.compute(MapMaker.java:549)
    ... 21 more
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make protected final java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) throws java.lang.ClassFormatError accessible: module java.base does not "opens java.lang" to unnamed module @3561c410
    at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:335)
    at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:278)
    at java.base/java.lang.reflect.Method.checkCanSetAccessible(Method.java:196)
    at java.base/java.lang.reflect.Method.setAccessible(Method.java:190)
    at com.google.inject.internal.cglib.core.$ReflectUtils$2.run(ReflectUtils.java:56)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at com.google.inject.internal.cglib.core.$ReflectUtils.<clinit>(ReflectUtils.java:46)
    ... 35 more

tl;dr: I'm not sure how to build.