Skip to content

Hello, when I using //depe or @file:DependsOn I get NoClassDefFoundError  #233

Description

@0x000-0

I am using
Android Studio (mac): 3.4.2,
kotlin: kotlinc-jvm 1.3.41 (JRE 12.0.1+12)

[kscript] Resolving dependencies...
[kscript]     Resolving de.mpicbg.scicomp:kutils:0.4...Exception in thread "main" java.lang.NoClassDefFoundError: org/ietf/jgss/GSSException
        at com.ning.http.client.providers.netty.NettyAsyncHttpProvider.<clinit>(NettyAsyncHttpProvider.java:177)
        at org.sonatype.aether.connector.async.AsyncRepositoryConnector.getDefaultProvider(AsyncRepositoryConnector.java:246)
        at org.sonatype.aether.connector.async.AsyncRepositoryConnector.getProvider(AsyncRepositoryConnector.java:241)
        at org.sonatype.aether.connector.async.AsyncRepositoryConnector.<init>(AsyncRepositoryConnector.java:154)
        at org.sonatype.aether.connector.async.AsyncRepositoryConnectorFactory.newInstance(AsyncRepositoryConnectorFactory.java:106)
        at org.sonatype.aether.impl.internal.DefaultRemoteRepositoryManager.getRepositoryConnector(DefaultRemoteRepositoryManager.java:346)
        at org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:453)
        at org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:216)
        at org.sonatype.aether.impl.internal.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:193)
        at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:281)
        at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor(DefaultArtifactDescriptorReader.java:186)
        at org.sonatype.aether.impl.internal.DefaultDependencyCollector.collectDependencies(DefaultDependencyCollector.java:191)
        at org.sonatype.aether.impl.internal.DefaultRepositorySystem.resolveDependencies(DefaultRepositorySystem.java:333)
        at com.jcabi.aether.Aether.fetch(Aether.java:228)
        at com.jcabi.aether.Aether.resolve_aroundBody2(Aether.java:180)
        at com.jcabi.aether.Aether$AjcClosure3.run(Aether.java:1)
        at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:149)
        at com.jcabi.aspects.aj.MethodLogger.wrap(MethodLogger.java:208)
        at com.jcabi.aspects.aj.MethodLogger.ajc$inlineAccessMethod$com_jcabi_aspects_aj_MethodLogger$com_jcabi_aspects_aj_MethodLogger$wrap(MethodLogger.java:1)
        at com.jcabi.aspects.aj.MethodLogger.wrapClass(MethodLogger.java:136)
        at com.jcabi.aether.Aether.resolve(Aether.java:177)
        at com.jcabi.aether.Aether.resolve_aroundBody0(Aether.java:163)
        at com.jcabi.aether.Aether$AjcClosure1.run(Aether.java:1)
        at org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:149)
        at com.jcabi.aspects.aj.MethodLogger.wrap(MethodLogger.java:208)
        at com.jcabi.aspects.aj.MethodLogger.ajc$inlineAccessMethod$com_jcabi_aspects_aj_MethodLogger$com_jcabi_aspects_aj_MethodLogger$wrap(MethodLogger.java:1)
        at com.jcabi.aspects.aj.MethodLogger.wrapClass(MethodLogger.java:136)
        at com.jcabi.aether.Aether.resolve(Aether.java:156)
        at kscript.app.DependencyUtilKt.resolveDependenciesViaAether(DependencyUtil.kt:86)
        at kscript.app.DependencyUtilKt.resolveDependencies(DependencyUtil.kt:53)
        at kscript.app.KscriptKt.main(Kscript.kt:158)
        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:567)
        at org.jetbrains.kotlin.runner.AbstractRunner.run(runners.kt:61)
        at org.jetbrains.kotlin.runner.Main.run(Main.kt:110)
        at org.jetbrains.kotlin.runner.Main.main(Main.kt:120)
Caused by: java.lang.ClassNotFoundException: org.ietf.jgss.GSSException
        at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:436)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
        ... 38 more

Activity

  1. OlegKrikun commented on Jul 19, 2019

    @OlegKrikun

    @TyZero try to use jdk8

  2. DanySK commented on Aug 30, 2019

    @DanySK

    Is Java 11+ unsupported? I get the same error, and it's blocking for my use case. I won't roll back to Java 8.

  3. holgerbrandl commented on Sep 2, 2019

    @holgerbrandl
    Collaborator

    No, in fact we should rather support 11 than 8 in 2019. I'll try to have a look asap.

  4. self-assigned this
    on Sep 2, 2019
  5. snitsaruk commented on Sep 3, 2019

    @snitsaruk

    I have the same issue and unfortunately, it is blocking me

  6. holgerbrandl commented on Sep 5, 2019

    @holgerbrandl
    Collaborator

    I've narrowed it down somehow. It seems to be a classloader problem. When running kscript with java instead of kotlin it does not give any error when using java11. So naively, I don't think any longer that is is caused by the module system.

    It might be fixed along with https://youtrack.jetbrains.com/issue/KT-26624 which addressed similar class loader problems. I'll test it with a kotlin EAP build asap.

  7. jakubgwozdz commented on Jan 27, 2020

    @jakubgwozdz

    Unfortunately it still exists on Kotlin 1.3.61, but now's the funny thing:

    #!/usr/bin/env kscript
    println("working dir: "+java.io.File(".").absolutePath)
    

    works ok

    but this:

    #!/usr/bin/env kscript
    println("sql:" + javax.sql.DataSource::class.java)
    

    gives

    Exception in thread "main" java.lang.reflect.InvocationTargetException
    Caused by: java.lang.NoClassDefFoundError: javax/sql/DataSource
    Caused by: java.lang.ClassNotFoundException: javax.sql.DataSource
    

    again, adding annotations like @file:CompilerOpts("-jvm-target 11") gives another NoClassDefFound:

    [kscript] Resolving dependencies...
    [kscript]     Resolving com.github.holgerbrandl:kscript-annotations:1.4...Exception in thread "main" java.lang.NoClassDefFoundError: org/ietf/jgss/GSSException
    Caused by: java.lang.ClassNotFoundException: org.ietf.jgss.GSSException
    

    My versions:

    % java -version
    openjdk version "11.0.2" 2019-01-15
    OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
    OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)
    % kotlinc -version
    info: kotlinc-jvm 1.3.61 (JRE 11.0.2+9)
    
  8. holgerbrandl commented on Jan 29, 2020

    @holgerbrandl
    Collaborator

    To me this still seems like a duplicate of #239 so maybe we should continue the discussion there?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions