在Scala网站上浏览示例Scala代码,但在尝试运行时遇到了一个恼人的错误。
以下是代码:http://www.scala-lang.org/node/45。在Eclipse上运行它时,我收到此消息“编辑器不包含主类型”,阻止它运行。
我需要做什么......即将该文件分成多个文件,或者是什么?
答案 0 :(得分:87)
在Eclipse中,确保在项目属性中添加源文件夹 - > java构建路径 - >资源。否则,main()函数可能不包含在您的项目中。
答案 1 :(得分:35)
我和Eclipse和Scala有很多这个问题。如果您清理工作区并重建项目,它会有所帮助。
有时Eclipse无法正确识别它必须重新编译的文件:(
编辑: 该代码在Eclipse中运行良好
答案 2 :(得分:26)
您必须确保.java文件位于eclipse中的 .src文件夹中。在得到它之前,我遇到了同样的问题。
答案 3 :(得分:21)
更简单的方法是关闭项目并重新打开它。
答案 4 :(得分:18)
只需确保您使用的文件夹已添加到构建路径中:
right-click
您的文件夹 - > build Path
- > Use as source Folder
现在应该在其中找到main
。
答案 5 :(得分:6)
我遇到了同样的问题。我尝试过各种各样的事情。我开始知道
我做的事情:
项目属性>> Java构建路径>>来源
这解决了错误。
答案 6 :(得分:4)
您可以尝试从eclipse的大纲侧栏运行main函数。
答案 7 :(得分:3)
快速解决方案:
首先,排除包裹: 右键单击源包>>构建路径>>排除
然后包括它: 右键单击源包>>构建路径>>包括
答案 8 :(得分:3)
***
关闭并重新开启
***你的日食项目。有时会出现连锁问题。这解决了我的问题
答案 9 :(得分:3)
您应该做的是创建Java项目,但请确保将此文件放在该项目的包文件中,否则您将遇到相同的错误。
答案 10 :(得分:2)
您应该通过
创建文件在右侧选择,您将找到您的文件名
下将找到src文件夹,你右键单击选择 - >类选项
他们的文件应该被创建
答案 11 :(得分:2)
确保.java文件存在于str包或其他包中。如果带有main函数的java文件在所有包之外,则抛出此错误。
答案 12 :(得分:2)
该代码有效。您是否尝试使用scalac手动编译?你还调过你的文件“地址簿”,全是小写的,就像对象的名字一样吗?
另外,我发现Eclipse由于某种原因将主类设置为“.addressbook”而不是“addressbook”。
答案 13 :(得分:1)
如果是maven项目请检查在src / main / java
下创建的java文件如果你没有收到请改变JRE路径并在上面的文件夹结构中创建java文件
答案 14 :(得分:1)
这可能是Java Build路径的问题。 请尝试以下步骤:
这应解决问题。
答案 15 :(得分:1)
从命令行运行“eclipse -clean -refresh”。当所有其他解决方案都失败时,这解决了我的问题。
答案 16 :(得分:1)
我遇到了同样的问题。我有src包中的主类,在其他文件夹中。我将其移入并更正文件夹并解决了
答案 17 :(得分:1)
遇到类似的问题,通过右键单击大纲视图中的main方法并作为Java应用程序运行来解决此问题。
答案 18 :(得分:1)
我在从文件系统导入的Java项目中遇到此问题(在Eclipse Helios下)。这里有一个提示:src代码似乎根本没有被编译,因为没有" bin"目录出现了。
我必须从头开始创建Java项目(使用向导),然后比较非工作和工作项目的.project
文件。
项目给出"编辑器不包含主要类型"将此作为" buildSpec"在.project文件中:
<buildSpec>
</buildSpec>
但是工作项目将此作为&#34; buildSpec&#34;:
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
我复制了这个,导入的项目有效。
我知道我的答案是针对Java的,但同样可能是您的Scala项目的问题。
答案 19 :(得分:1)
您创建的文件可能位于src(source)文件夹之外。尝试从源文件夹外的.java文件调用类对象(来自位于src文件夹中的文件)会导致相同的错误。将.java文件复制到源文件夹,然后构建它。错误将消失。
答案 20 :(得分:1)
正确的答案是:Scala库需要在构建路径中的JRE库之前。
转到 Java Buildpath&gt;订购和导出并将Scala库移到顶部
答案 21 :(得分:1)
我也遇到了这个问题。解决方案是确保eclipse将项目创建为Java项目。只需创建一个新的Java项目并将您的类复制到src文件夹中(并导入最终的依赖项)。这应该可以解决问题。
答案 22 :(得分:0)
还有一件事要检查:确保源文件包含与其所在子目录对应的正确包声明。当尝试运行文件中声明的“主类型”时,可以看到OP提到的错误。一个子目录但缺少包语句。
答案 23 :(得分:0)
我更改了源文件夹后也遇到了这个问题。适用的解决方案是编辑文件并保存。
答案 24 :(得分:0)
档案&gt;&gt;导入&gt;&gt;现有项目到工作区&gt;&gt;选择存档归档&gt;&gt;浏览并找到文件&gt;&gt;完。如果它已经以其他方式导入,则删除它并以此方式尝试。在我尝试之前,我遇到了同样的问题。
答案 25 :(得分:0)
在最坏的情况下 - 再次使用从头开始的所有导入创建项目。就我而言,没有其他选择有效。此类错误提示项目设置中存在错误。我曾经设法解决它,但一旦进一步的发展,错误又回来了。从一开始就重新创建一切,帮助我理解并优化了一些链接,现在我确信它能正常工作。
答案 26 :(得分:0)
尝试'更新项目'。完成后,出现了“作为Java应用程序运行”选项。
答案 27 :(得分:0)
在我特定的“Hello World”案例中,导致此问题的原因是,我的main()
方法位于Scala class
内。
我将main()
方法置于Scala object
下,错误消失了。
这是因为Java术语中的Scala object
是内部只有静态成员和方法的实体。
这就是为什么Scala中的Java public static void main()
必须放在object
下。
(Scala class
可能不包含静态内容)
答案 28 :(得分:0)
按照以下步骤操作:
答案 29 :(得分:0)
错误原因:“编辑器不包含主要类型”
在Eclipse Neon中遇到错误
操作系统:Windows 10 Pro
从拇指驱动器复制源文件夹并省略Eclipse_Projects.metadata文件夹时。
除了全新安装之外,您必须确保合并来自(Thrumb-drive)F:Eclipse_Projects.metadata.plugins的文件。
这些插件是在创建类时从SDK中获取的库代码的各个部分。我真的全都取决于你-----将javax.swing。*; -----导入你的文件。因为你的转移确保将------ Eclipse_Projects.metadata.plugins ------手动与简单的复制和粘贴合并,同时接受文件夹中已存在的插件的跳过功能。
对于Windows 10:您可以按照类似的文件层次结构模式找到工作文件夹。
C:用户&gt;麦克斯笔记本电脑&gt;工作区&gt; .metadata&gt; .plugins&lt; ---在这里合并插件
答案 30 :(得分:0)
对我来说,在Eclipse 3.6中,当我的main方法不公开时会出现此问题。我通过这样的主方法引起了这个问题:
static void main(String[] args)
dubugger本身无法检测到这一点。我很惊讶Eclipse忽略了这一点。
答案 31 :(得分:-1)
您需要在文件夹.java
中找到文件src
(在Eclipse的Project Explorer中)然后运行。
我刚刚将一个文件.java
添加到项目中,它不在文件夹src
中,所以我有同样的错误。
我把它再次放入src
,然后它就构建了。
答案 32 :(得分:-1)
不添加文件,而是添加类。 File
- &GT; New
- &GT; Class
。这解决了我的问题。
答案 33 :(得分:-1)
在类中添加main方法来克服此问题。我面临同样的问题。现在我的代码中包含了主要方法,我解决了我的问题。