无法 运行 Eclipse 中的 Kotlin 应用程序
Unable to Run Kotlin Application in Eclipse
为了在 Eclipse 中创建我的第一个简单的 Kotlin 项目,我遵循了 Kotlin 官方网站 Getting Started with Eclipse Luna 教程中的步骤,即:
- 从 Eclipse Marketplace 安装适用于 Eclipse 的 Kotlin 插件
- 打开 Kotlin 透视图并创建一个 Kotlin 项目
- 使用
main
方法在 "src" 文件夹中创建了文件 "hello.kt"
- 右键单击文件 > 运行 作为 > Kotlin 应用程序
但是,我在 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")
}
我注意到教程与我所做的之间存在以下差异:
- 我正在使用不同的 Eclipse 版本(教程建议使用 Luna;我正在使用 Mars.2)。
- 我使用的是不同的 JDK 版本(教程没有建议任何特定版本,但从图像中我们可以看到他们使用了
jdk1.6.0_45
,而我使用的是 jdk1.7.0_79
.
请注意,我使用的是最新版本的 Kotlin Eclipse 插件,因此这与 中的情况不同。这些是我当前安装的版本:
- 科特林 0.7.2.v20160930-0748
- kotlin-eclipse-policy 0.7.2.v20160928-1525
- kotlin-weaving-feature 0.7.2.v20160928-1525
在 运行 应用程序时,这些分歧中的任何一个都可能是错误的原因吗?
你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。
为我工作,虽然我会杀了能够使用常规 运行 配置,但这就是生活.....
- 转到Windows->显示视图->导航器
- 编辑
.project
文件,仅更改以下部分以将 Kotlin 文件编译到与 Java 文件相同的位置。
<linkedResources>
<link>
<!--name>kotlin_bin</name-->
<type>2</type>
<locationURI>org.jetbrains.kotlin.core.filesystem:/FindUniqueStrings/bin</locationURI>
</link>
</linkedResources>
切记:
- 我已经注释掉了
name
标签。否则,Kotlin 编译器会创建 src 文件夹 kotlin_bin
并将您的 kotlin 文件放在该文件夹中,而 kotlin 运行时将找不到它。
- 我的 java 项目的名称是
FindUniqueStrings
。你的会不一样。
- 通过在
Navigator
视图中找到这些文件,仔细检查您的 java class 文件是否已编译到项目的 bin 文件夹中。
为了在 Eclipse 中创建我的第一个简单的 Kotlin 项目,我遵循了 Kotlin 官方网站 Getting Started with Eclipse Luna 教程中的步骤,即:
- 从 Eclipse Marketplace 安装适用于 Eclipse 的 Kotlin 插件
- 打开 Kotlin 透视图并创建一个 Kotlin 项目
- 使用
main
方法在 "src" 文件夹中创建了文件 "hello.kt" - 右键单击文件 > 运行 作为 > Kotlin 应用程序
但是,我在 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")
}
我注意到教程与我所做的之间存在以下差异:
- 我正在使用不同的 Eclipse 版本(教程建议使用 Luna;我正在使用 Mars.2)。
- 我使用的是不同的 JDK 版本(教程没有建议任何特定版本,但从图像中我们可以看到他们使用了
jdk1.6.0_45
,而我使用的是jdk1.7.0_79
.
请注意,我使用的是最新版本的 Kotlin Eclipse 插件,因此这与
- 科特林 0.7.2.v20160930-0748
- kotlin-eclipse-policy 0.7.2.v20160928-1525
- kotlin-weaving-feature 0.7.2.v20160928-1525
在 运行 应用程序时,这些分歧中的任何一个都可能是错误的原因吗?
你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。 为我工作,虽然我会杀了能够使用常规 运行 配置,但这就是生活.....
- 转到Windows->显示视图->导航器
- 编辑
.project
文件,仅更改以下部分以将 Kotlin 文件编译到与 Java 文件相同的位置。
<linkedResources>
<link>
<!--name>kotlin_bin</name-->
<type>2</type>
<locationURI>org.jetbrains.kotlin.core.filesystem:/FindUniqueStrings/bin</locationURI>
</link>
</linkedResources>
切记:
- 我已经注释掉了
name
标签。否则,Kotlin 编译器会创建 src 文件夹kotlin_bin
并将您的 kotlin 文件放在该文件夹中,而 kotlin 运行时将找不到它。 - 我的 java 项目的名称是
FindUniqueStrings
。你的会不一样。 - 通过在
Navigator
视图中找到这些文件,仔细检查您的 java class 文件是否已编译到项目的 bin 文件夹中。