问题标签 [kotlinc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
58 浏览

eclipse - Kotlin 在 Eclipse 或命令行中编译 java 12 和 kotlin

我试图创建一个简单的 Kotlin 命令行应用程序

和一个非常简单的 Java 类

但是当我尝试在 Eclipse 中编译所有内容时,我没有收到任何错误,但我的 kotlin .class 没有更新。我有一个相当于该类的 kotlin,并且一切正常。但我希望能够将我的 java 类集成到 kotlin 如果我尝试从命令行编译,我会得到:

Main.kt:1:13:错误:未解决的参考:RegistroJ

我怎么解决这个问题?

0 投票
1 回答
173 浏览

kotlin - Kotlinc 包含其他 jar 文件

我想在 MacOS 上从命令行运行一个应用程序。问题是我想包含Gson在文件中以将我的数据类转换为 json 对象。(我是 kotlin 命令行新手)

为了简化,我使用以下内容:

要在命令行中创建/运行我的代码,我使用:

现在我的问题是如何gson.jar将能够使用它的内容包含到应用程序中?

目前,我收到错误,因为它无法解决Gson()

任何帮助表示赞赏。

0 投票
2 回答
261 浏览

java - 注释处理:如何在 Kotlin 代码中更改注释目标?

很多时候,当我在 Kotlin 代码中使用 Java 库中的注解时,我必须指定 target 以指定编译代码中必须注解的元素:

我不想指定@get:Email,而是希望能够简单地使用@Email,特别是如果它出现在很多地方。

问题:有没有办法提示 Kotlin 编译器在所有地方使用不同的目标,这样如果我使用@Email它就会像处理它一样处理它@get:Email?或者有没有其他方法可以省略指定目标?如何实现?是否可以通过注释处理在编译阶段完成(就像Lombok一样)?

即使他们不直接回答我的问题,我也会很感激任何想法。

0 投票
0 回答
182 浏览

java - Kotlin Compiler Plugin:如何检查属性是否有注释?

我正在创建一个 Kotlin 编译器插件,我需要在其中检查数据类的属性是否具有注释:

DelegatingClassBuilder.newField我通过以下方式覆盖:

问题:无论我的属性是否被注释,descriptor.annotations都不会包含我的注释。如果我将注释使用目标更改为其他任何内容,我仍然没有得到注释。

同时,如果我注释一个函数并覆盖newMethod,我可以用非常相似的代码得到这个函数的注释。

问题:如何获取数据类中属性的注释?

0 投票
1 回答
672 浏览

kotlin - 如何在命令行编译 kotlinx.serialization 库?

这与我想要完成的非常接近。如何使用外部 java 库在命令行中编译和运行 kotlin 程序

我真的很想学习如何编译和运行包含库的简单代码,但是在包含类路径时我有点迷失了。

我目前正在尝试编译和运行

使用

用这个编译器编译

https://blog.jetbrains.com/kotlin/2020/07/kotlin-1-4-rc-released/

文章底部允许的 lib 是 kotlinx-serialization-runtime-1.0-M1-1.4.0-rc.jar 的来源。我之所以选择这个运行时 jar,是因为当我使用新的 kotlin 4.0.21 编译器时,它需要您自己构建的 kotlin-serialization-runtime-1.0.1.jar,但是当我下载源代码并运行 gradle build 时,它不需要似乎生成了(单独的问题,但很想知道如何自己构建运行时 jar)

当我尝试跑步时,我得到

我知道我需要在运行时包含一个类路径

但尝试了一切都没有成功

我尝试了许多不同的组合,包括使用和不使用 -Xplugin="C:\PROGRA~1\Kotlin\lib\kotlinx-serialization-compiler-plugin.jar 进行编译似乎没有什么不同,所以我离开了它离开。

我尝试编译为 java .jar 和 kotlin .class 文件似乎都需要在运行时的类路径信息。我宁愿编译成一个 kotlin .class 并将 java 排除在外,直到我真正需要它为止。通过这种方式,我可以了解 java 在我的应用程序中真正在做什么。

我想我真正想知道的是如何确定运行时可执行文件运行所需的内容。我发现这个站点有助于显示依赖关系,但适用于旧版本的 kotlin https://kotlin.binarydoc.org/org.jetbrains.kotlin/kotlin-compiler-dist/1.3.71/package?package=kotlinx.serialization

我也一直在使用https://github.com/google/android-classysharkhttps://github.com/borisf/classyshark-bytecode-viewer进入 .class 文件

但是当人们在 StackOverflow 上告诉其他人他们需要使用什么类路径来解决他们的问题时,这似乎很神奇。有人可以教我如何在没有gradle的情况下钓鱼吗?

ps 如果有人有任何好的资源来学习 gradle 如何构建项目的内部知识。我在这里看了一点https://docs.gradle.org/current/userguide/userguide.pdf但似乎没有帮助。也许我错过了什么。此外,此页面https://kotlinlang.org/docs/reference/serialization.html#example-json-serialization似乎有我需要的东西,但似乎无法将其转移到命令行需要的东西。

这是什么意思?我认为这是指这个https://github.com/Kotlin/kotlinx.serialization

但是我如何从这个 repo 构建我需要的东西并使用它来让我的应用程序知道它的运行时依赖项在哪里?啊。我真的很想自己弄清楚这一切,但我必须为此向互联网大神跪下。对不起,我的帖子很乱。我爱学习。

0 投票
0 回答
207 浏览

kotlin - 如何在 Kotlin REPL 中使用 maven 依赖项?

具有格式的 Kotlin 脚本可以轻松地通过和注释*.main.kts拉取依赖项。@file:Repository@file:DependsOn

但我尝试了与 REPL 类似的方法:

kotlinc-jvm -cp <InstallationPath>/lib/kotlin-main-kts.jar (手动指定 jar 只是因为默认情况下它没有加载)

它抛出:error: unresolved reference: from

我们可以在 REPL 中使用依赖项吗?如果是,如何?我真的不想手动指定罐子,因为如果我这样做,我还需要手动下载它的所有依赖项,这是一个糟糕的解决方案。

我想应该有一些像pipKotlin REPL 这样的工具,如果我们真的不想用 gradle 设置一个完整的项目来进行一些测试和东西,这可能会使这个过程更容易,更好。

0 投票
1 回答
190 浏览

kotlin - 如何从 CLI 编译和运行依赖于 jar 的 kotlin 文件?

我有一个名为 A.kt 的文件,它依赖于 B.jar。如何在 CLI 上编译和运行 kotlin 文件?

我努力了:

但这没有用。

我得到的错误是:

0 投票
0 回答
37 浏览

java - 无法使用 $ kotlinc hello.kt -include-runtime -d hello.jar 编译以下 kotlin 文件

我写了一个代码

当我在 cmd 中使用命令时

它在编译时显示错误

Java HotSpot(TM) 64 位服务器 VM 警告:选项 -Xverify:none 和 -noverify 在 JDK 13 中已弃用,并且可能会在未来的版本中删除。异常:java.lang.ArrayIndexOutOfBoundsException:在 org.jetbrains.org.objectweb.asm.ClassReader 的 org.jetbrains.org.objectweb.asm.ClassReader.readUnsignedShort(ClassReader.java:2464) 的长度 11026 的索引 11026 超出范围。 readUTF8(ClassReader.java:2525) at org.jetbrains.org.objectweb.asm.ClassReader.readModule(ClassReader.java:761) at org.jetbrains.org.objectweb.asm.ClassReader.accept(ClassReader.java:646)在 org.jetbrains.org.objectweb.asm.ClassReader.accept(ClassReader.java:507) 在 org.jetbrains.kotlin.resolve.jvm.modules.JavaModuleInfo$Companion.read(JavaModuleInfo.kt:67) 在 org.jetbrains .kotlin.cli.jvm.modules.CliJavaModuleFinder.findSystemModule(CliJavaModuleFinder.kt:44) 在 org。

需要一些帮助我有最新版本的 java se 即 15.0.2

0 投票
1 回答
145 浏览

java - 如何将 kotlin 脚本编译为 jar

我有一个名为 CheckUtils.kts 的 kotlin 脚本文件。

我想将 CheckUtils.kts 编译为一个可以使用“java -jar CheckUtils.jar”运行的 jar。我尝试使用 kotlinc 将 kts 文件编译为 jar,但我失败了。

当我“java -jar CheckUtils.jar”时出现错误

那么,如何将 kts 文件编译为 jar?

0 投票
1 回答
52 浏览

windows - 在 Windows 中批量编译 Kotlin 源代码时出错

Microsoft Windows 7我的C:\new目录中有两个 Kotlin 源代码:

  • 你好1.kt
  • 你好2.kt

C:\例如,我可以在其当前工作目录所在的命令行中单独编译它们>kotlinc hello1.kt。但是当我尝试进行批量编译时,出现错误:

笔记:

  • 结果kotlinc .\*.kt是一样的。
  • > dir *.kt正确列出.kt文件,所以问题不可能出在关于*通配符上。
  • $ kotlinc *.kt正常工作Linux

我想知道导致问题的原因是什么?有没有办法进行批量编译Microsoft Windows