网上有些视频教程讲解过程中,在讲解如何将Java和kotlin一起使用的时,在编辑build.gradle时,步骤如下:

① 修改build.gradle -> build.gradle.kts

② 在build.gradle.kts中添加

plugins {
    application;
    kotlin("jvm");
}

application {
    mainClassName = "Main";
}
dependencies {
    compile(kotlin("stdlib"));
}
repositories {
    jcenter();
}

对于这个编写方式,没有问题。但是要注意,这是2017年~2018年时候的Intellij IDEA、gradle 4.1版本时候的写法。

对于上述写法,在2021年时候,Intellij IDEA2021.2、gradle 7.2版本就不适用了。

大家需要将Build.gradle.kts编写成如下:

import java.util.regex.Pattern.compile

plugins {
    application;
    kotlin("jvm") version "1.5.10"   //版本要与File->project structure -> Project Settings -> Libraries 的‘Gradle: org.jetbrains.kotlin:kotlin-stdlib’相同
}

application {
    mainClassName = "Dog";  //此处的Dog为kotlin文件名  Dog.java  注意看下面的Java文件名
}

dependencies {
    compile("org.jetbrains.kotlin:kotlin-stdlib"); //此处是重点, 要引入包文件,注意与以前版本的写法区别
}

repositories{
    jcenter()
}

其余测试代码如下:

src - main - kotlin 文件夹:

Aniaml.kt
class Aniaml(var name : String) {
    fun cry() {
        println("animal $name can cry")
    }
}

src - main - java 文件夹:

Dog.java

public class Dog {
    public static void main(String [] args) {
        Aniaml d = new Aniaml("Cat");
        d.cry();
    }
}

测试结果:

> Task :compileKotlin
> Task :compileJava
> Task :processResources NO-SOURCE
> Task :classes

> Task :run
animal Cat can cry

Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐