Eclipse“错误:无法找到或加载主类”

问题描述 投票:92回答:43

我在笔记本电脑上有一个日食项目,我推到了Git https://github.com/chrisbramm/LastFM-History-Graph.git

它在我的笔记本电脑上完全运行并且运行/构建没有问题,但在我的桌面上它没有Eclipse给出错误

错误:无法找到或加载主类lastfmhistoryguis.InputPanel

我尝试过构建项目:

Project>Build Project

但什么都没发生。我已经将这台计算机上的PATH变量设置为JRE6,JRE7和JDK 1.7.0,即使这些变量没有在我的笔记本电脑上设置。

我确实有我的.classpath文件中的Jar文件(last.fm-bindings-0.1.1.jar),该文件位于我的笔记本电脑上的C:\ Users \ Chris \ Downloads文件夹中,因此它不包含在git树中我最近带进了项目文件夹并提交了,但我不确定我是否做得对。这也会导致问题,但那里没有主要论点。

我现在无法解决,我需要检查/更改。

java eclipse git jar classpath
43个回答
37
投票

在类路径中,您使用的是绝对路径,但是您已将项目移动到具有可能不同文件结构的新计算机上。

因此,在您的类路径中,您应该(并且可能一般情况下,如果您要将JARS与您的项目捆绑在一起),请使用相对路径:

在.classpath中更改

<classpathentry kind="lib" path="C:/Users/Chris/Downloads/last.fm-bindings-0.1.1.jar" sourcepath=""/><classpathentry kind="lib" path="C:/Users/Chris/Downloads/last.fm-bindings-0.1.1.jar" sourcepath=""/>

<classpathentry kind="lib" path="last.fm-bindings-0.1.1.jar"/>

4
投票

类似的事情发生在我身上几次,我知道解决这个问题的唯一方法是删除元数据文件夹。幸运的是,我找到了另一种方式。

尝试转到项目属性> Java构建路径>订单和导出选项卡>全选(或尝试使用复选框)。

这应该导致完整的项目重建和Eclipse看到主类。

另外:我注意到当工作区中有许多项目并且其中一些项目配置错误时会出现此错误(出现红色感叹号)。修复项目构建路径和其他设置(即使此项目与您遇到问题的项目无关)应解决问题。


3
投票

当工作区路径中有特殊字符时,也会导致此问题。我的工作区位于我的个人文件夹中,其名称是希腊语,所以它不起作用。我改变了我的工作区,现在路径中只包含英文字符,现在项目构建没有任何问题。


3
投票

如果您正在使用eclipse,那么以下步骤将解决您的问题:

转到运行 - >运行配置 - >主类搜索 - >手动查找类 - >应用 - >运行


3
投票

我有这个错误。这是因为我有static void main(String[] args) 而不是public static void main(String[] args)

我花了近一个小时试图解决这个问题。

注意:唯一的区别是我没有声明mainpublic


3
投票

我的Main class无法找到或加载问题是由一个有趣的原因引起的。

在我们的项目中,我们使用Maven作为构建工具,而我的main class extends是一个类,它位于class path但其范围是test,而main class不在测试包中。

如果你的主要类extends一个类,首先尝试通过删除main class部分运行你的extends。如果它运行,你至少会明白问题不是因为run configurationeclipse而是类,你的main class extends


3
投票

如果您的代码很好并且您知道自己遇到了Eclipse问题,那么这将解决它。

您只需删除$ yourproject / .classpath,$ yourproject / .project和$ yourworkspace / .metadata。其他人提到了这个选项。它会炸毁整个工作区。代替:

  1. 从项目中删除.classpath和.project
  2. 在eclipse中删除你的项目。请勿检查磁盘上的删除项目内容。
  3. 现在,在文件资源管理器中,进入$ yourworkspace / .metadata。
  4. 搜索$ yourprojectname
  5. 删除找到的所有内容。删除.metadata目录中的任何内容应该是安全的。
  6. 在eclipse中:文件>导入>常规>项目从文件夹或存档> $ yourproject>完成
  7. 右键单击项目>属性> Java构建路径>源选项卡
  8. 选择所有源文件夹,删除。
  9. 添加文件夹,选择src(无论你调用什么src文件夹)并添加它
  10. 转到库选项卡
  11. 在此处将任何jar添加到您的构建路径。现在您的项目应该没有更多错误。
  12. 像往常一样运行你的项目。

2
投票

我遇到了同样的问题,但在我的情况下,它是由缺少(空)源文件夹引起的(它存在于原始项目中,但不存在于GIT存储库中,因为它是空的)。

创建丢失的文件夹后一切正常。


2
投票

在移动一些资源之后,我也收到了这个错误。检查错误日志,我发现Eclipse无法进行构建,因为它无法删除文件/文件夹。尝试手动删除“bin”(或其他任何名称)文件夹。

这对我来说至少是这样的伎俩。


2
投票

我今天遇到了这个错误,因为我设置了一个hello world程序,然后将一个新程序剪切并粘贴到同一个文件中。为了解决上次调用时没有找到hello world的问题,我点击了Run-> Run Configurations然后在Main Class下点击了搜索,它找到了我的新类名,并在我粘贴的文本中用正确的新名称替换了它。这是我所知道的新手问题,但它也很容易修复。我希望这可以帮助别人!道格拉斯


2
投票

我在使用正确的.classpath文件时遇到了同样的问题,很快就发现它实际上不是.classpath文件计数(在我解决了这个问题后,我用原来的文件替换了可用的.classpath文件,该项目仍然有效,这意味着。类路径文件不是这样的)

由于这是一个Maven项目,我所做的只是:

  1. mvn eclipse:干净
  2. 删除eclipse项目
  3. 导入项目
  4. DONE

希望能帮助到你!


66
投票

如果使用public static void main(String[] args)创建java类,Eclipse将通过右键单击文件本身或项目资源管理器中的文件为您运行该main方法,然后选择:

“运行方式” - >“Java应用程序”。

执行此操作后,Eclipse会存储有关您的类的信息,因此您可以从“运行方式”菜单(工具栏上的“绿色播放”按钮)或“运行配置”对话框中再次轻松地运行该类。

如果您随后移动java类(手动,或者然后),则再次选择

“运行方式” - >“Java应用程序”

从新位置开始,Eclipse将运行原始存储配置,尝试从其原始位置调用此类,这会导致此错误。


SOLUTION:
For me, the fix was to go to the run configurations, (Green Play Button -> Run Configurations) and remove all references to the class. The next time you run

“运行方式” - >“Java应用程序”

Eclipse将为移动的类编写一个新配置,错误将消失。


2
投票

只需转到您的Package Explorer并按F5,或者按某些笔记本电脑fn + F5。原因是eclipse认为文件在某处,但文件实际上是在其他地方。通过刷新它,您将它们放在同一页面上。不要担心,你不会丢失任何东西,但如果你想要格外小心,只需将你的java项目文件夹中的文件备份到安全的地方。


2
投票

这些是简单的步骤,这有助于我解决这个问题。

  1. 关闭日食
  2. 删除工作区中的“.metadata”文件夹。 (可能是隐藏文件夹)
  3. 打开eclipse(它会在你的工作区自动创建“.metadata”文件夹)
  4. 尝试运行该程序。

2
投票

要解决此错误,请执行以下步骤:

第1步:打开.project文件。

第2步:检查两个标签......

    a) <buildSpec>

    b) <natures>

步骤3:如果上述标签不包含任何内容,那么肯定会发生上述错误。

步骤4:将以下内容添加到每个标记以解决上述错误。

对于<buildSpec>

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

对于<natures>

<natures>
    <nature>org.eclipse.jdt.core.javanature</nature>
</natures>

第5步:按ctrl + s保存文件。

步骤6:为安全起见,只需关闭项目一次并重新打开。

第7步:就是这样。你准备好摇滚!

如果解决方案有用,请在评论中提及。

谢谢。


2
投票

检查工作区错误日志(Windows-> Show View - > Error log)。如果您看到任何导入的jar已损坏,请删除相应的存储库文件夹并再次重新导入。


2
投票

有两种解决方案可供选择。

(1)转到运行配置: - run-> run configurations在Classpath选项卡中:

选择Advanced Add,其中Eclipse通常为项目提供* .class,它位于bin中。所以我添加了项目的bin目录。

(2)如果第一个解决方案没有工作,那么这意味着你指向你的项目的jar正在走你当地Maven仓库的路径,这个仓库没有更新到你的项目,所以你最好从当地的maven仓库检查罐子将其复制粘贴到新项目中,或者只是从任何站点下载并将其配置到您的构建路径中。

我希望它有所帮助。


2
投票

如果你导入了jre,这可能导致jdk库

这发生在我身上,所以检查安装的jre罐子

在eclipse中单击Windows> Preferences> Java> Installed Jres>单击Jre并在查看jar列表之后编辑,确保没有jdk或损坏,enter image description here


1
投票

我有同样的问题。花了几个小时,最后将我的工作区更改回本地文件夹,现在一切正常。也许为别人节省一些时间。乔恩


1
投票

大多数情况下会发生这种情况,因为Eclipse会清除.class文件,但不会再次构建它们。检查bin文件夹,它应该是空的。然后你应该检查,还有什么,导致构建失败。您可能在类路径中添加了一些jar,Eclipse可能无法找到它们。


1
投票

我刚刚遇到这个问题后,无论我将JAVA_HOME设置为什么,Windows 8拒绝更新路径的问题 - java -version报告了最后一个JDK而不是我存储在JAVA_HOME中的JDK。我终于通过放'%JAVA_HOME%/ bin;'来实现这一点。在路径环境变量的前面而不是在末尾。然后我启动了Eclipse,突然之间它无法找到我的主类,因为它在此之前工作正常。我修复它的方法是进入项目属性,从库选项卡中删除现有的JRE库,通过选择“添加库”按钮添加新的JRE,然后按照提示将JRE 7安装为我的默认JRE。现在所有人都恢复了工作。


1
投票

我在我的案例中找到了其他解决方案这个问题:Eclipse->Preferences->Java->Installed JRE然后按下按钮搜索。在Linux /usr中选择文件夹,然后Eclipse找到所有JVM。

选择另一个JVM太当前。它解决了我的情况。


47
投票

tl; dr:清理整个Build Path以及手动添加的所有内容。这包括其他来源,项目,图书馆。

  • 项目 - >清洁
  • 确保Project - > Build自动激活
  • 项目 - >属性 - > Java构建路径 - >库:删除您添加的所有外部库。不要删除JRE系统库之类的标准库。
  • 现在尝试运行你的主类。 “类无法找到/加载”错误应该消失。尝试一个接一个地添加外部libs / jars。

这背后的原因:编译器在将库链接到项目时遇到了问题。它失败并产生错误的错误消息。

在我的情况下,它应该是“无法将AutoHotkey.dll添加到构建路径”,因为这是使编译器失败的原因。


如果这仍然无法工作,请查看Eclipse的内置ErrorLog:

窗口 - >显示视图 - >常规 - >错误日志


1
投票

在我的项目中创建新包(“表”)后,我遇到了同样的问题。

我去了Window -> Show View -> General -> Error Log,我读错了:

JavaBuilder handling ImageBuilderInternalException while building: PizzaService

org.eclipse.core.internal.resources.ResourceException: Resource '/PizzaService/bin/tables' already exists.

事实证明,我在另一个源文件夹中有一个文本文件,其名称与此新包相同。所以我已经将文本文件名从“Tables”更改为“Tabless”,我可以再次运行我的项目。

希望这可以帮助。


20
投票

我做了上面提到的所有事情,但没有一个对我有用

我的问题解决了以下问题。

右键单击您的项目>> properties >> JavaBuildPath >> Libraries。

取下上面有红旗的罐子。

如果你仍然有问题尝试下面的解决方案,这对我来说,当我第二次遇到这个问题时:

右键单击项目>>属性>> Java构建路径>>库,删除和添加库。 (选择JRE系统库)


14
投票

花了将近一个小时后,我在我的maven webapp项目中遇到了类似的问题,我找到了一个适合我的解决方案。我输入了以下maven命令并且它工作了

mvn clean install -U 我不知道背后的确切原因。


9
投票

我假设您已将项目导入桌面eclipse安装中?如果是这种情况,您只需选择Project> Clean。然后重建您的项目。对我来说就像一个魅力。


9
投票

我遇到了同样的问题并使用以下方法解决了

Eclipse Mars
Egit
Github
Maven Project

问题是我让我的maven项目可用于github。它将我的项目移动到我的github文件夹。

解:

  • 关闭Eclipse
  • 删除工作区内的元数据文件夹
  • 重启Eclipse

将显示开始屏幕。

  • 关闭开始屏幕
  • 右键单击包浏览器
  • 选择“进口maven项目”,
  • 导航到您的github文件夹并导入maven项目。

在此之后,我的项目成功编译。


6
投票

通过以下任一方法检查您的项目是否有构建器

  • 检查项目属性(在“包浏览器”中,右键单击项目,选择“属性”),第二部分是“Builders”,它应该保存默认的“Java Builder”
  • 或者查看“.project”文件(在... / workspace / yourProjectName / .project中),“buildSpec”部分不应为空。

必须有其他方法,但我做的是:

  • 关闭日食
  • 编辑。“project”文件以添加“buildSpec”部分
  • 重启日食

一个适当的最小java“.project”文件应如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
        <name>myProjectName</name>
        <comment></comment>
        <projects>
        </projects>
        <buildSpec>
                <buildCommand>
                        <name>org.eclipse.jdt.core.javabuilder</name>
                        <arguments>
                        </arguments>
                </buildCommand>
        </buildSpec>
        <natures>       
                    <nature>org.eclipse.jdt.core.javanature</nature>
        </natures>      
</projectDescription>

6
投票

那么以下对我有用......

  1. 进入项目文件夹(在workspace内)
  2. 然后,删除了bin文件夹
  3. 然后,清理项目/项目(在Eclipse中)
  4. 从Eclipse构建/运行。
© www.soinside.com 2019 - 2024. All rights reserved.