java.lang.ClassNotFoundException: com.redhat.ceylon.compiler.java.runtime.tools.Options

java.lang.ClassNotFoundException: com.redhat.ceylon.compiler.java.runtime.tools.Options

使用锡兰 IDE 1.2.1 和 Vert.x 3.2.1:

import io.vertx.ceylon.core {
    vertx_=vertx
}

shared void run() { 
    value vertx = vertx_.vertx();
}

模块有

shared import io.vertx.ceylon.web "3.2.1";

运行 作为 Ceylon Java 应用程序,结果:

Exception in thread "main" java.util.ServiceConfigurationError: io.vertx.core.spi.VerticleFactory: Provider io.vertx.lang.ceylon.CeylonVerticleFactory could not be instantiated
at java.util.ServiceLoader.fail(ServiceLoader.java:232)
at java.util.ServiceLoader.access0(ServiceLoader.java:185)
at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:384)
at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)
at java.util.ServiceLoader.next(ServiceLoader.java:480)
at io.vertx.core.impl.DeploymentManager.loadVerticleFactories(DeploymentManager.java:56)
at io.vertx.core.impl.DeploymentManager.<init>(DeploymentManager.java:51)
at io.vertx.core.impl.VertxImpl.<init>(VertxImpl.java:139)
at io.vertx.core.impl.VertxImpl.<init>(VertxImpl.java:114)
at io.vertx.core.impl.VertxImpl.<init>(VertxImpl.java:110)
at io.vertx.core.impl.VertxFactoryImpl.vertx(VertxFactoryImpl.java:34)
at io.vertx.core.Vertx.vertx(Vertx.java:79)
at io.vertx.ceylon.core.vertx_.vertx(vertx_.java:51)
(...)
Caused by: java.lang.NoClassDefFoundError: com/redhat/ceylon/compiler/java/runtime/tools/Options
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)
at java.lang.Class.getConstructor0(Class.java:3075)
at java.lang.Class.newInstance(Class.java:412)
at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:380)
... 40 more
Caused by: java.lang.ClassNotFoundException: com.redhat.ceylon.compiler.java.runtime.tools.Options from [Module "io.vertx.lang.ceylon:3.2.1" from Ceylon ModuleLoader: RootRepositoryManager: FileContentStore: /Users/axel/.ceylon/cache]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:205)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:455)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:404)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:385)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:130)
... 45 more

有什么想法吗?我不记得 1.2.0 Ceylon IDE 版本中有这样的东西,所以我猜那里有变化。 Vert.x 3.2.0 给出同样的错误。

那是因为Vert.x3.2只兼容Ceylon 1.2,不兼容Ceylon 1.2.1。未来几天会有一个新版本来解决这个问题。