编辑器不包含主类型


92

只是浏览了Scala网站上的示例Scala代码,但是在尝试运行它时遇到了一个令人讨厌的错误。

这是代码:http : //www.scala-lang.org/node/45。在Eclipse上运行它时,出现此消息“编辑器不包含主类型”,该消息阻止其运行。

我有什么需要做的...将那个文件分成多个文件,或者什么?

Answers:


37

我在Eclipse和Scala中经常遇到这个问题。如果您清理工作区并重建项目,则将有帮助。

有时Eclipse无法正确识别必须重新编译的文件:(

编辑:代码在Eclipse中运行良好


4
取得了相同的经验。另外,有时关闭和打开项目对我来说似乎是必需的。
Fabian Steeg

感谢@nuriaion和@Fabian,是的,重新打开该项目可以使其正常工作。再次感谢您的提示。
海伦·尼利

3
@Helen在Eclipse => Project => Clean中,您可以清理项目,重建将自动运行...因此您不必关闭并重新打开项目。
nuriaion

打开和关闭scala项目给了我:构建期间发生错误。实例化构建器“ ch.epfl.lamp.sdt.core.scalabuilder”时出错。插件“ ch.epfl.lamp.sdt.core”无法实例化类“ scala.tools.eclipse.Builder”。无法初始化类scala.tools.eclipse.contribution.weaving.jdt.builderoptions.ScalaJavaBuilder插件“ ch.epfl.lamp.sdt.core”无法实例化类“ scala.tools.eclipse.Builder”。无法初始化类scala.tools.eclipse.contribution.weaving.jdt.builderoptions.ScalaJavaBuilder
Ustaman Sangat

87

在Eclipse中,确保在项目属性-> java build path-> source中添加源文件夹。否则,main()函数可能不包含在您的项目中。


请注意,这也可以通过将文件拖放到文件夹资源管理器视图中的“ src”中来完成。
Max von Hippel

这解决了我的问题,但是在关闭并打开项目之后。
赛义德

26

您必须确保.java文件位于eclipse 中的 .src文件夹中。在我弄清楚之前,我有同样的问题。


26

一种更简单的方法是关闭项目并重新打开它。


21

只要确保您使用的文件夹已添加到构建路径中即可:

right-click您的文件夹-> build Path->Use as source Folder

现在应该可以在main其中找到


6

我有同样的问题。我尝试了各种各样的事情。我知道

  1. 我的.java文件未链接,并且
  2. 它们没有放在“ src”文件夹中。

我所做的事情:

项目属性>> Java构建路径>>源

  • 使用“删除”选项删除了原来的“ src”文件夹,该文件夹为空
  • 使用“添加文件夹”选项添加了包含我的源.java文件的源

这样就解决了错误。


5

您可以尝试从Eclipse的轮廓侧栏运行主要功能。

解


执行此操作时,出现错误消息:<project root> [in Tut_RMI] does not exit。(项目名称为Tut_RMI)此项目名称无效吗?
卡斯珀


3

快速解决方案:

首先,排除该软件包:右键单击源软件包>>构建路径>>排除

然后将其包含:右键单击源包>>构建路径>>包含


3

您应该做的是创建一个Java项目,但请确保将此文件放入该项目的打包文件中,否则会遇到相同的错误。

在此处输入图片说明


2

该代码有效。您是否尝试过使用scalac手动编译它?另外,您是否将文件称为“地址簿”(全部为小写字母,例如对象的名称)?

另外,我发现由于某种原因,Eclipse将主类设置为“ .addressbook”而不是“ addressbook”。


丹尼尔(Daniel),是的,文件名为“ addressbook”(小写)。将尝试重新打开项目以查看是否有帮助。
Helen Neely,2009年

2

您应该通过以下方式创建文件

在右侧选择,您将找到您的文件名,

在该目录下将找到src文件夹,然后右键单击选择->类选项

他们的文件应该被创建



2

面对类似的问题,可以通过在大纲视图中右键单击主要方法来解决此问题,然后以Java应用程序的身份运行。


1

我也有这个问题。解决方案是确保eclipse将项目创建为Java项目。只需创建一个新的Java项目并将您的类复制到src文件夹(并导入最终的依赖项)即可。这应该可以解决问题。


感谢KullDox,谢谢您的评论。我已经解决了这个问题很久了,但希望其他人对这里的解决方案有所帮助。
海伦·尼利

1

正确的答案是:Scala库需要在buildpath中的JRE库之前。

转到Java Buildpath> Order and Export,并将Scala库移到顶部


1

我从文件系统(在Eclipse Helios下)导入的Java项目遇到了这个问题。这是一个提示:src代码似乎根本没有编译,因为没有显示“ bin”目录。

我不得不从头开始创建一个Java项目(使用向导),然后比较.project非工作项目和工作项目的文件。

提供“编辑器不包含主类型”的项目在.project文件中将其作为“ buildSpec”:

<buildSpec>
</buildSpec>

但是工作项目将其作为“ buildSpec”:

<buildSpec>
    <buildCommand>
        <name>org.eclipse.jdt.core.javabuilder</name>
        <arguments>
        </arguments>
    </buildCommand>
</buildSpec>

我复制了此文件,导入的项目成功了。

我知道我的答案是针对Java的,但是对于您的Scala项目,可能也是同样的问题。


1

可能是您创建的文件在src(source)文件夹之外。尝试从源文件夹之外的.java文件调用类对象(从src文件夹中的文件)导致相同的错误。将.java文件复制到源文件夹,然后进行构建。错误将消失。


1

我有同样的问题。我的主类不在其他文件夹的src包中。我将其移入并纠正了文件夹并解决了


1

从命令行运行“ eclipse -clean -refresh”。当所有其他解决方案均失败时,这为我解决了该问题。


1

这可能是Java构建路径的问题。请尝试以下步骤:

  1. 转到项目属性
  2. 转到Java构建路径
  3. 转到“源”选项卡并添加项目的src文件夹

这样可以解决问题。


1

如果是Maven项目,请检查是否在src / main / java下创建了Java文件。

如果没有得到,请更改JRE路径并在上述文件夹结构中创建Java文件


0

对我来说,在Eclipse 3.6中,当我的main方法不公开时会发生此问题。我通过使用这样的主要方法引起了问题:

static void main(String[] args) 

dubugger本身无法检测到。我很惊讶Eclipse忽略了这一点。


0

在最坏的情况下-从头开始重新创建所有导入的项目。就我而言,其他选择均无效。此类错误提示项目设置中存在错误。我曾经设法解决它,但是一旦完成进一步的开发,该错误又回来了。从一开始就重新创建所有内容,有助于我理解和优化某些链接,现在我确信它可以正常工作。


0

请按照以下步骤操作:

  1. 将所有.java文件备份到其他位置
  2. 删除整个Java项目
  3. 通过右键单击root并单击new创建新的Java项目。
  4. 恢复所有文件到新位置!

0

文件>>导入>>现有项目到工作区>>选择归档文件>>浏览并找到文件>>完成。如果它已经以其他方式导入,请将其删除并尝试这种方式。在尝试之前,我一直遇到同样的问题。


0

还需要检查一件事:确保源文件包含与其所在子目录相对应的正确软件包声明。尝试运行子目录中文件中声明的“主类型”时,可以看到OP提到的错误,但是缺少包装声明。


0

更改源文件夹后,我也遇到这个问题。适用的解决方案是仅编辑文件并保存。


0

尝试“更新项目”。完成此操作后,将出现“以Java应用程序运行”选项。


0

在我特定的“ Hello World”案例中,导致此问题的原因是事实,即我的main()方法在Scala内部class

我将main()方法放在Scala下object,错误消失了。

这是因为object用Java术语来说,Scala 是内部仅包含静态成员和方法的实体。

因此public static void main(),必须将Java 在Scala中放置在下object

(Scala class可能不包含static的内部)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.