无法 运行 Eclipse 中的 Kotlin 应用程序

Unable to Run Kotlin Application in Eclipse

为了在 Eclipse 中创建我的第一个简单的 Kotlin 项目,我遵循了 Kotlin 官方网站 Getting Started with Eclipse Luna 教程中的步骤,即:

但是,我在 Eclipse 控制台中不断收到以下错误:

Error: Could not find or load main class HelloKt

我已经仔细检查了我项目的 运行 配置,它确实将 "Main class" 设置为 HelloKt(我 100% 确定它不存在) .此外,当我点击 "Search" 按钮时,Eclipse 找到的唯一项目是 HelloKt - (default package)(同样,它不存在)。

为了完整起见,请在下面找到 hello.kt 文件的代码:

fun main(args: Array<String>) {
    println("Hello, World")
}

我注意到教程与我所做的之间存在以下差异:

请注意,我使用的是最新版本的 Kotlin Eclipse 插件,因此这与 中的情况不同。这些是我当前安装的版本:

在 运行 应用程序时,这些分歧中的任何一个都可能是错误的原因吗?

你see/know关于这种情况的任何潜在原因或已知错误吗?


更新(2017 年 5 月 14 日)

尝试使用 Eclipse Neon.3 (eclipse.buildId=4.6.3.M20170301-0400),JDK 1.8.0_111,Kotlin 0.8.2.v20170314-0957 (kotlin -eclipse-policy 0.8.2.v20170314-0957,kotlin-weaving-feature 0.8.2.v20170314-0957,Equinox Weaving SDK 1.2.0.201701131634)。 问题依然存在。

试试新的 Kotlin File 而不是 Kotlin Class:

对我来说只发生过一次。我认为这是 Kotlin 插件的一些小故障,当您第一次创建 Kotlin 文件并尝试 运行 它时。 尝试 "new Kotlin class" 粘贴相同的内容,看看是否有效。 之后你应该能够 运行 这两个文件,就像我遇到的那样。

我遇到了同样的问题, 它通过删除 JAVA_HOME 环境变量解决。

我在 JAVA_HOME 环境变量中设置了一个我删除的旧 JDK 文件夹。

我遇到了和你一样的问题。我尝试了很多方法但没有用(比如卸载插件,然后重新安装插件,删除项目并创建新项目...)

如何修复: 我创建了一个新的工作区并再次设置了 helloworld 项目。我看到生成了 class 文件,我可以正常 运行 它。

请注意,我们创建的是新工作区而不是项目。我注意到工作区包含 .metadata 文件夹,其中可能包含大量 Eclipse 信息。

尝试使用 Java 8 (1.8.0_144) 和 Eclipse Oxygen.1a 版本(4.7.1a - build id 20171005-1200)和以下插件版本:

  Kotlin    0.8.2.v20170314-0957    org.jetbrains.kotlin.feature.feature.group  JetBrains
    kotlin-eclipse-policy   0.8.2.v20170314-0957    org.jetbrains.kotlin.policy.feature.group   JetBrains
    kotlin-weaving-feature  0.8.2.v20170314-0957    org.jetbrains.kotlin.weaving.feature.feature.group  JetBrains

一切都按预期工作,无需创建单独的工作区and/or使用Kotlin File而不是Kotlin Class:

这对我有用.... 如果你去 Window -> Show View -> Navigator 它向您展示的更多是工作区的物理布局,而不是 Package Explorer 的逻辑视图。 右键单击定义了 main 函数的 kotlin 文件,然后单击 运行 As -> Kotlin Application。 为我工作,虽然我会杀了能够使用常规 运行 配置,但这就是生活.....

  1. 转到Windows->显示视图->导航器
  2. 编辑 .project 文件,仅更改以下部分以将 Kotlin 文件编译到与 Java 文件相同的位置。
<linkedResources>
        <link>
            <!--name>kotlin_bin</name-->
            <type>2</type>
            <locationURI>org.jetbrains.kotlin.core.filesystem:/FindUniqueStrings/bin</locationURI>
        </link>
</linkedResources>

切记:

  1. 我已经注释掉了 name 标签。否则,Kotlin 编译器会创建 src 文件夹 kotlin_bin 并将您的 kotlin 文件放在该文件夹中,而 kotlin 运行时将找不到它。
  2. 我的 java 项目的名称是 FindUniqueStrings。你的会不一样。
  3. 通过在 Navigator 视图中找到这些文件,仔细检查您的 java class 文件是否已编译到项目的 bin 文件夹中。