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

Eclipse “Error: Could not find or load main class”

我的笔记本电脑上有一个Eclipse项目,推到了git https://github.com/chrisbramm/lastfm-history-graph.git。

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

Error: Could not find or load the main class lastfmhistoryguis.InputPanel

我试着从以下方面着手建设这个项目:

1
Project>Build Project

但什么也没发生。我已经将这台计算机上的PATH变量设置为jre6、jre7和jdk 1.7.0,即使这些变量不是在我的笔记本电脑上设置的。

我确实有jar文件(last.fm-bindings-0.1.1.jar),它在我的.classpath文件中,位于我笔记本电脑上的c:userschrisdownloads文件夹中,因此它不包括在我最近放入项目文件夹并提交的git树中,但我不确定我是否做得正确。这是否也会导致一个问题,但其中没有一个主要论点。

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


如果用EDCOX1(0)来创建Java类,Eclipse将通过右键单击文件本身或在项目资源管理器中的文件来运行该主方法,然后选择:

"Run As" ->"Java Application."

一旦您这样做了,Eclipse将存储关于您的类的信息,这样您就可以从"运行方式"菜单(工具栏上的绿色播放按钮)或"运行配置"对话框轻松地再次运行该类。

如果您随后移动Java类(手动或,但是),则再次选择

"Run As" ->"Java Application,"

从新的位置,Eclipse将运行原始的存储配置,尝试从其原始位置调用这个类,这导致了这个错误。< BR>


解决方案:
对于我来说,修复方法是转到运行配置(绿色播放按钮->运行配置)并删除对类的所有引用。下次跑步时

"Run As" ->"Java Application"

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


DR:清理整个构建路径以及手动添加到其中的所有内容。这包括其他来源、项目、库。

  • 项目->清洁
  • 确保项目->自动生成处于活动状态
  • Project -> Projt:JavaBudio路径>库:删除您添加的任何外部LIB。不要删除标准库,如JRE系统库。
  • 现在试着管理你的主班。"找不到类/加载"错误应消失。尝试逐个添加外部libs/jar。

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

在我的例子中,应该是"无法将autohotkey.dll添加到构建路径"之类的,因为这就是导致编译器失败的原因。

如果这仍然不起作用,请查看Eclipse的内置错误日志:

Window -> Show View -> General -> Error Log


在类路径中,您使用的是绝对路径,但您已经将项目移到了一台可能具有完全不同文件结构的新机器上。

因此,在类路径中(通常,如果要将jar与项目捆绑在一起,也可能是这样),应该使用相对路径:

在你的.classpath中改变

1
<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=""/>

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


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

我的问题在下面解决了。

右键单击项目>>属性>>JavaBuildPath>>库。

取出上面有红旗的罐子。

如果您仍然有问题,请尝试下面的解决方案,当我第二次面对这个问题时,这对我很有用:

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


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

MVN清洁安装-U我不知道背后的确切原因。


我假设您已经将项目导入到桌面Eclipse安装中了?如果是这种情况,您应该只选择项目>清理。然后重建项目。对我来说很有魅力。


我也有同样的问题,用以下方法解决了它:

1
2
3
4
Eclipse Mars
Egit
Github
Maven Project

问题是我把我的Maven项目提供给了Github。它将我的项目移到了我的Github文件夹中。

解决方案:

  • 近食
  • 删除工作区内的元数据文件夹
  • 重新启动Eclipse

将显示开始屏幕。

  • 关闭开始屏幕
  • 右键单击进入包资源管理器
  • 选择"导入Maven项目",
  • 导航到Github文件夹并导入Maven项目。

在这之后,我的项目成功地进行了编译。


通过以下任一方式检查项目是否具有生成器:

  • 检查项目属性(在"包资源管理器"中),右击项目,选择"属性",第二部分是"建造者",它应该持有默认的"Java生成器"。
  • 或者在".project"文件中(在…/workspace/yourprojectname/.project中),"buildspec"部分不应为空。

肯定还有别的办法,但我做的是:

  • 关闭Eclipse
  • 编辑"project"文件以添加"buildspec"部分
  • 重新启动Eclipse

一个适当的极小Java".Project"文件应该看起来像:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?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>
                </buildCommand>
        </buildSpec>
        <natures>      
                    <nature>org.eclipse.jdt.core.javanature</nature>
        </natures>      
</projectDescription>


好吧,以下内容对我很有用…

  • 进入项目文件夹(在workspace内)
  • 然后,删除bin文件夹
  • 然后,清理项目(在Eclipse中)
  • 从Eclipse构建/运行。

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

    尝试去Project属性> Java构建路径>订单和导出选项卡>选择ALL(或者尝试在那里使用复选框)。

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

    另外:我注意到,当您在一个工作空间中有许多项目,并且其中一些项目配置错误(出现红色感叹号)时,就会出现此错误。修复项目生成路径和其他设置(即使此项目与您有问题的项目无关)应修复问题。


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

    Go to Run -> Run Configurations -> Main Class Search -> Locate your class manually -> Apply -> Run


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


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

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

    如果您的主类extends是一个类,首先尝试通过删除extends部分来运行Main class。如果它运行,你至少会理解问题不是因为run configurationeclipse,而是因为类,你的Main classextends


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

    您可以简单地删除$yourproject/.classpath、$yourproject/.project和$yourworkspace/.metadata。其他人提到了这个选项。但它会炸毁你的整个工作区。而是:

  • 从项目中删除.classpath和.project
  • 在Eclipse中删除您的项目。不选中"删除项目"磁盘上的内容。
  • 现在,在文件资源管理器中,进入$yourworkspace/.metadata。
  • 搜索$yourprojectname
  • 删除你找到的一切。删除.metadata目录中的任何内容应该是安全的。
  • 在Eclipse中:文件>导入>常规>文件夹中的项目或存档>您的项目>完成
  • 右键单击项目>属性> Java构建路径>源选项卡
  • 选择所有源文件夹,删除。
  • 添加文件夹,选择SRC(无论您的SRC文件夹叫什么)并添加它
  • 转到"库"选项卡
  • 在这里向构建路径添加任何jar。您的项目现在不应该有更多的错误。
  • 像平常一样运行你的项目。

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

    我花了将近一个小时想弄清楚。

    注:唯一的区别是我没有宣布mainpublic


    我对正确的.classpath文件也有同样的问题,很快就发现实际上它不是计算在内的.classpath文件(在我解决了这个问题后,我用原来的.classpath文件替换了可使用的.classpath文件,项目仍然有效,这意味着.classpath文件不是这样的情况)。

    因为这是一个Maven项目,我所做的就是:

  • MVN Eclipse:干净
  • 删除Eclipse项目
  • 导入项目
  • 完成
  • 希望它有帮助!


    这些简单的步骤帮助我解决了这个问题。

  • 关闭日食
  • 删除工作空间中的".metadata"文件夹。(可能是隐藏文件夹)
  • 打开Eclipse(它将自动在您的工作空间中创建".metadata"文件夹)
  • 尝试运行程序。

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

    步骤1:打开.project文件。

    第二步:检查两个标签…

    1
    2
    3
        a) <buildSpec>

        b) <natures>

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

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

    对于

    1
    2
    3
    4
    5
    6
    7
    <buildSpec>
        <buildCommand>
            <name>org.eclipse.jdt.core.javabuilder</name>
           
            </arguments>
        </buildCommand>
    </buildSpec>

    对于

    1
    2
    3
    <natures>
        <nature>org.eclipse.jdt.core.javanature</nature>
    </natures>

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

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

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

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

    谢谢您。


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


    相同的解决方案有两种。

    (1)转到运行配置:-运行->运行配置在"类路径"选项卡中:

    选择高级添加Eclipse通常将项目的*.class放在bin中的位置。所以我为这个项目添加了bin目录。

    (2)如果第一个解决方案不起作用,那么这意味着您指向项目的JAR采用的是本地maven repo的路径,而该路径不会更新到您的项目中,因此最好从本地maven repo检查JAR并复制它粘贴到新项目中,或者只从任何站点下载它并将其配置到bui中。LD路径。

    希望有帮助。


    移动了一些资源后,我也收到了这个错误。检查错误日志时,我发现Eclipse无法生成,因为它无法删除文件/文件夹。尝试手动删除"bin"(或它对您的调用)文件夹。

    至少对我来说是这样的。


    只需进入你的软件包浏览器并按F5键,或者对于一些笔记本电脑按FN+F5键。原因是Eclipse认为文件在某个地方,但实际上文件在另一个地方。通过刷新它,您将它们放在同一页上。不要担心,你不会丢失任何东西,但是如果你想格外小心,只需把你的Java项目文件夹中的文件备份到安全的地方。


    我也遇到了同样的问题,但在我的例子中,这是由于缺少(空的)源文件夹(它存在于原始项目中,但不存在于Git存储库中,因为它是空的)。

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


    我今天遇到这个错误,因为我设置了一个hello world程序,然后将一个新程序剪切并粘贴到同一个文件中。为了解决找不到hello world的问题,我单击了run->run configurations,然后在主类下单击search,它找到了我的新类名,并在我粘贴的文本中用正确的新名称替换了它。我知道这是个新手问题,但也很容易解决。我希望这能帮助别人!道格拉斯


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


    我刚刚遇到这个问题后,首先有问题的Windows 8拒绝更新我的路径,无论我设置JavaHead到-Java版本报告了最后一个JDK,而不是我在JavaHOHE中存储的一个。最后,我将"%java_home%/bin;"放在path环境变量的前面,而不是放在末尾,从而实现了这一点。然后我启动了Eclipse,它突然找不到我的主班,因为它在这之前工作得很好。我所做的修复工作是进入项目属性,从"库"选项卡中删除现有的JRE库,通过选择"添加库"按钮添加新的JRE,然后按照提示将JRE 7安装为我的默认JRE。现在一切都恢复正常了。


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


    我对日蚀火星也有同样的问题。我有一个正在运行的项目,然后把它放在我的Git存储库中。这就破坏了执行(我猜是因为实际的Java文件已经移动到Git位置,而在我的工作空间中已经不存在了)。我做了一个maven>更新,现在可以工作了。


    我一直在使用Eclipse氧气,但问题一直存在。后来我发现,如果Eclipse工作区位于非ASCII字符目录下,那么javaw.exe就无法访问bin目录。假设您的目录名是Work,hello the remove underline sign and clean the project and run configurations。这对我很有用。参考:https://www.eclipse.org/forums/index.php/t/1093209/


    如果您已经导入到JRE中,这可能会导致JDK库的出现。

    这发生在我身上,所以检查安装的JRE JAR

    在Eclipse中点击Windows >首选项> jav>安装的JRES>点击JRE并编辑之后查看JAR列表,确保没有JDK或损坏,MGXY1 0


    我花了十个小时试图解决这个问题,最终帮助我的是注意到我的包中有一些同名的文件(文本文件),比如todo、readme和important。我检查了我项目中的每个包,重命名了这些文件(如todo ou packagename、todo ou packagename等),完成后,我关闭Eclipse并重新启动它。然后工作!


    我也遇到了同样的错误,错误出现在一个导入的外部jar中。在移除那个罐子之后,这个项目对我很有效。


    当我从Eclipse项目中删除一个".jar"文件时,我遇到了这个问题,用鼠标右键单击它并点击"删除"(不是从"构建路径")。

    为了解决这个问题,我尝试了以下步骤:

    1- Right click on the project

    2- Build Path --> Configure Build Path

    3- Libraries

    4- Delete the jar file from there (I see a red mark beside it).

    我希望它有用。


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

    选择另一个JVM太新。我的案子解决了。


    按照它对我有效的步骤操作:1.从Eclipse中删除配置构建路径(构建路径)2、刷新3.添加configure build path->source->add folder->check src ok。


    用ctrl+shift+r(windows)重命名该类,它将在引用该类的所有地方更改该类的名称,然后执行相反的过程。在我的例子中,它是由环境中的几个项目中相同的类名引起的,Eclipse很难理解哪个是哪个。


    当我把已安装的JRE改为JDK7而不是JRE7时,发生了这种事。所有东西都编译了,但我不能运行Eclipse中的任何东西"Eclipse错误找不到或加载主类"

    修复;返回到以前的JRE7。


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

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

    1
    2
    3
    JavaBuilder handling ImageBuilderInternalException while building: PizzaService

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

    事实证明,我在另一个源文件夹中有一个文本文件,与这个新包同名。所以我把文本文件名从"tables"改为"tabless",我可以再次运行我的项目。

    希望这有帮助。


    实际上,我找到了这个问题的真正根本原因,通过逐个手动添加每个.jar文件,因为在同一线程中的以下答案建议您这样做。

    原因:
    你知道我们是人类,我们真的是懒惰的生物,这就是为什么我们可以选择"全选",也可以选择快捷键来执行这个操作。所以当我需要为一个需要PDF生成的应用程序添加大约30多个JAR文件时,我确实是这样做的,

    Right Click on Project -> Properties -> Java Build Path

    • 选择其中的"库"选项卡,然后添加jars…,通过目录树浏览,并在"lib"文件夹中(我的jars和license.txt文件位于项目"lib"文件夹中),选择所有文件并添加。你能猜出怎么了吗?它成功地添加了"lib"文件夹中的所有文件。但是Eclipse一直试图以这种方式公开您可能添加的任何文本文件作为JAR文件。所以它不能建立链接。就是这样。

    所以你有两个选择:

  • 只选择您想要的任何地方的JAR文件,不要太懒惰而添加文本和其他类型的文件。或者,

  • 选择要从中添加JAR的特定文件夹中的所有文件,然后逐个删除非JAR文件。

  • 注:
    如果您在尝试添加"库"时以这种方式向项目添加了任何非JAR文件,它将向您显示如下内容:

    enter image description here

    并不断尝试编译,最后会出现以下错误:

    Error: Could not find or load the main class er.waterapp.some.MainFileGivenByConfigaration

    • mainfilegivenbyconfiguaration可以是您从配置中选择的任何类,以作为应用程序的起点。

    原来就是这样!!!!希望我有机会帮助别人,也能节省他很多时间。-)

    喝彩,< BR>兰迪卡


    我在我的小Java代码段中遇到了类似的问题。

    这是我做的。

  • 我复制了主班的所有内容。

  • 删除了主类问候语。

  • 右击->创建一个名称为GRADER的新Java类

    A>创建类时选中包含主方法

  • 哇!!!!我可以通过右键单击主类Gruty.java作为Java应用程序运行。

  • 出于好奇,我再次尝试删除GeRead类并在不检查main方法的情况下创建新类,并且它没有显示我在右击中运行为Java应用程序选项。


    我最后做的是在Eclipse中,复制整个项目并再次粘贴它(当然,给它取一个不同的名称)。然后运行复制的项目。它应该询问您是否希望它运行为Java小程序或Java应用程序。单击Java应用程序,它应该再次工作。然后,如果愿意,可以删除原始项目并将当前项目重命名为其原始名称。


    在更改配置或重新安装之前,请尝试重命名包。我得到了这个奇怪的错误,除了几行代码之外什么都没有改变。重建没有成功,即使bin文件夹是空的,Eclipse也不会重新创建类。在将包从test重命名为test1之后,Eclipse开始重建,一切都很好。


    我有一个非常奇怪的原因导致这个错误。本地Maven存储库(~/.m2/…)中引用的某些文件已损坏。在删除这些内容然后重新构建应用程序之后,它就工作了。使用较新版本的maven暴露了损坏的文件。