在Java中使用Kotlin类:找不到符号

我已经find了关于Android的这个类似的问题,但我使用普通的Java与Maven作为构建工具。 我认为最好发表一个新的问题。

我创建了一个Kotlin类,我试图从Java类MyKotlinClass.class 。 Maven构建失败,而IntelliJ Idea中的编译工作正常。 我已经将Kotlin插件添加到maven

   org.jetbrains.kotlin kotlin-maven-plugin ${kotlin.version}   compile compile  compile    test-compile test-compile  test-compile     

但是这并没有帮助:

 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project app: Compilation failure [ERROR] MyClassLinkingKotlin.java:[100,40] error: cannot find symbol 

行/列恰好引用符号MyKotlinClass.class 。 即使是这样使用也会失败:

 System.err.println(MyKotlinClass.class) 

2 Solutions collect form web for “在Java中使用Kotlin类:找不到符号”

您的Maven配置会添加Kotlin编译器插件,但不会调整Java编译器插件的执行,以便Java编译器在Kotlin编译器之后运行。 因此,Java编译器在Kotlin之前运行,并没有看到Kotlin编译的类。

这是一个显示混合语言项目的正确配置的摘录(摘自文档 ):

    kotlin-maven-plugin org.jetbrains.kotlin ${kotlin.version}   compile  compile    ${project.basedir}/src/main/kotlin ${project.basedir}/src/main/java     test-compile  test-compile    ${project.basedir}/src/test/kotlin ${project.basedir}/src/test/java       org.apache.maven.plugins maven-compiler-plugin 3.5.1    default-compile none    default-testCompile none   java-compile compile  compile    java-test-compile test-compile  testCompile       

我遇到了同样的错误,但有正确的POM设置。 我的问题是,我只是用一个Intellij把一个Java类转换成一个Kotlin类,而把这个Kotlin文件留在src/main/java

对我来说,解决方案是创建一个src/main/kotlin并将我的Kotlin类移到那里,并将我的Java文件留在src/main/java 。 但是你确实需要@ yole的答案显示的maven设置。

  • @Name注释exception
  • 如何启动Kotlin中的字符串数组?
  • Kotlin是否具有身份识别function?
  • Kotlin编译错误:未解决的AspectJ超types
  • Kotlin:检查if语句中的可为空的值是否有效
  • 在Kotlin中有属性的函数types
  • 声明站点差异可能导致ClassCastException
  • TextView Null膨胀父布局后
  • 在SpringBoot中,Firebase连接在Linux上不起作用
  • 如何区分绑定的可调用成员引用和kotlin中相同types的函数?
  • Kotlin Hibernate OneToOne fetchtype.LAZY立即运行所有查询
  • Kotlin language will be the best programming language for Android.