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

时间:2016-11-09 11:45:54

标签: eclipse jvm kotlin jdk1.7

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

  • 从Eclipse Marketplace安装适用于Eclipse的Kotlin插件
  • 打开Kotlin视角并创建一个Kotlin项目
  • 使用main方法在“src”文件夹中创建文件“hello.kt”
  • 右键单击文件>运行方式> Kotlin申请

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

  

错误:无法找到或加载主类HelloKt

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

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

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

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

  • 我正在使用不同的Eclipse版本(教程建议Luna;我正在使用Mars.2。)。
  • 我正在使用不同的JDK版本(该教程不建议任何特定版本,但从图像中我们可以看到他们使用jdk1.6.0_45,而我正在使用jdk1.7.0_79。< / LI>

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

  • Kotlin 0.7.2.v20160930-0748
    • kotlin-eclipse-policy 0.7.2.v20160928-1525
    • kotlin-weaving-feature 0.7.2.v20160928-1525

运行应用程序时,这些差异是否会导致错误?

您是否看到/了解有关此方案的任何潜在原因或已知错误?

更新(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)。 问题仍然存在。

7 个答案:

答案 0 :(得分:3)

尝试新的Kotlin File而不是Kotlin Class

example

答案 1 :(得分:1)

对我而言,它只发生过一次。我认为这是Kotlin插件的一些小问题,当你第一次创建Kotlin文件并尝试运行它时。 尝试新的Kotlin课程&#34;粘贴相同的内容,看看它是否有效。 之后你应该能够像我一样运行这两个文件。

答案 2 :(得分:1)

我和你有同样的问题。我尝试了很多方法,但没有工作(如卸载插件,然后再次安装插件,删除项目并创建新项目......)

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

请注意,我们创建新工作区而不是项目。我注意到工作空间包含.metadata文件夹,它可能包含很多Eclipse的信息。

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

尝试使用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

一切按预期工作,无需创建单独的工作区和/或使用Kotlin File代替Kotlin Class

enter image description here

答案 5 :(得分:0)

这对我有用.... 如果你去Window - &gt;显示视图 - &gt;航海家 它显示了工作区的物理布局,而不是Package Explorer的逻辑视图。 右键单击定义了main函数的kotlin文件,然后单击Run As - &gt; Kotlin申请。 为我工作,虽然我会杀死能够使用常规运行配置,但这就是生活......

答案 6 :(得分:0)

  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类文件是否已编译到项目的bin文件夹中。