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

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

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

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

我已经尝试从以下项目构build项目:

Project>Build Project 

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

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

我现在不能工作,我需要检查/改变。

30 Solutions collect form web for “Eclipse“错误:无法find或加载主类””

在你的类path中,你正在使用一个绝对path,但是你已经把项目移到了一个新的机器上,而且很可能有不同的文件结构。

因此,在你的类path中,你应该使用相对path(也许在一般情况下,如果你要将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"/> 

如果使用public static void main(String[] args)创build一个java类,那么Eclipse将通过右键单击文件本身或项目资源pipe理器中的文件来运行该主方法,然后select:

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

一旦你这样做,Eclipse存储关于你的类的信息,所以你可以很容易地从Run As菜单(工具栏上的绿色播放button)或Run Configurations对话框中运行该类。

如果你随后移动Java类(手动,或者然而),然后再select

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

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

对我来说,修复是去运行configuration,(绿色播放button – >运行configuration),并删除所有对类的引用。 下一次你跑步

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

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

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

  • 项目 – >清洁
  • 确保项目 – >生成自动激活
  • 项目 – >属性 – > Java构buildpath – >库: 删除您添加的任何外部库 。 不要删除像JRE系统库这样的标准库。
  • 尝试现在运行你的主要类。 “class not found / load”错误应该消失了。 尝试添加你的外部库/jar一个接一个。

背后的原因:编译器有问题链接库到项目。 它失败了,并产生了错误的错误信息。

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


如果这仍然不起作用,请查看Eclipse内置ErrorLog

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

我花了将近一个小时后,在我的maven webapp项目中遇到类似的问题,我find了一个解决scheme,为我工作。我input了下面的maven命令,它工作

mvn干净安装-U
我不知道背后的确切原因。

我假设你已经导入到你的桌面eclipse安装项目? 如果是这样的话,你应该selectProject> Clean。 然后重build你的项目。 为我工作就像一个魅力。

我做了上面提到的所有事情,但没有一个为我工作

我的问题在下面解决。

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

取下上面有红旗的jar子。

如果您仍然遇到问题,请尝试下面的解决scheme,这对第二次遇到此问题时适用于我:

右键单击项目>>属性>> Java构buildpath>>库,删除并添加库。 (selectJRE系统库)

通过以下任一方式检查您的项目是否具有构build器:

  • 检查项目属性(在“包资源pipe理器”,右键单击项目,select“属性”),那里第二部分是“build设者”,它应该保持默认的“Java Builder”
  • 或者查看“.project”文件(在… / workspace / yourProjectName / .project中)“buildSpec”部分不应该为空。

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

  • closures日食
  • 编辑。“项目”文件以添加“buildSpec”部分
  • 重启eclipse

适当的最小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> 

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

尝试去项目属性> Java构buildpath>订单和导出选项卡>全选 (或尝试玩checkbox那里)。

这应该导致完成项目重build和Eclipse看到主类。

另外:我注意到,当你在一个工作空间中有很多项目,并且其中一些configuration错误(红色的感叹号出现),就会发生这个错误。 修复项目构buildpath和其他设置(即使这个项目与你有问题的项目没有关系)应该解决一个问题。

那么以下为我工作…

  1. 进入项目文件夹( workspace区内)
  2. 然后,删除bin文件夹
  3. 然后,清理项目/项目(在Eclipse中)
  4. 从Eclipse构build/运行。

我有同样的问题,并解决它使用:

 Eclipse Mars Egit Github Maven Project 

问题是我把我的maven项目提供给github。 它将我的项目移动到我的github文件夹。

解:

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

将显示开始屏幕。

  • closures开始屏幕
  • 右键单击包资源pipe理器
  • select“importmaven项目”,
  • 导航到你的github文件夹并导入maven项目。

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

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

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

我也收到了这个错误,只是在移动一些资源之后。 检查错误日志,我看到Eclipse无法进行生成,因为它无法删除文件/文件夹。 尝试手动删除“bin”(或任何它所要求的)文件夹。

至less,这对我来说是个诀窍。

当您的工作区path中有特殊字符时,也会导致此问题。 我在我的个人文件夹中有我的工作区,它的名字是希腊语,所以它没有工作。 我改变了我的工作空间,现在只包含英文字符,现在这个工程没有任何问题。

我今天遇到了这个错误,因为我build立了一个hello world程序,然后把一个新程序剪切并粘贴到同一个文件中。 为了解决最后被称为没有find你好世界的问题,我点击了运行 – >运行configuration,然后在主类下,我点击search,它发现我的新类名称,并replace为正确的新名称在我粘贴的文本。 这是我知道的一个新手问题,但也很容易解决。 我希望这可以帮助别人! 道格拉斯

我有正确的.classpath文件相同的问题,很快发现实际上不是.classpath文件计数(我解决了这个问题后,我用原来的replace可行的.classpath文件,该项目仍然工作,这意味着。 classpath文件并非如此)

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

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

希望能帮助到你!

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

进入运行 – >运行configuration – >主类search – >手动定位你的类 – >应用 – >运行

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

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

我花了近一个小时试图弄清楚。

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

我的Main class无法find或加载问题是由一个有趣的原因造成的。

在我们的项目中,我们使用Maven作为构build工具,而我的main class extends了一个类,它在class path但是它的作用域是test ,而main class不在testing包下。

如果你的主类extends了一个类,首先通过移除extends部分来运行你的main class 。 如果运行,你至less会明白,问题不是因为run configurationeclipse而是类,你的main class extends

大多数情况下会发生这种情况,因为Eclipse会清除.class文件,但不会再次构build它们。 检查bin文件夹,它应该是空的。 那么你应该检查,还有什么其他的,这是造成build设失败。 您可能在classpath中添加了一些jar,Eclipse可能找不到。

尝试在更改configuration或重新安装之前重命名软件包。
我得到这个奇怪的错误没有改变任何东西比几行代码。 重build不起作用,即使bin文件夹为空,Eclipse也不会重新创build类。 将testing包重新命名为test1后,Eclipse开始重build,一切正常。

在刚刚发生Windows 8拒绝更新path的问题之后,我刚刚遇到了这个问题,无论我将JAVA_HOME设置为什么 – java -version报告了最后一个JDK,而不是我存储在JAVA_HOME中的那个JDK。 我终于通过把'%JAVA_HOME%/ bin'来工作。 在path环境variables的前面,而不是在最后。 然后,我启动了Eclipse,突然之间,它找不到我的主要类,当它在此之前罚款。 我所做的修正是进入项目属性,从库选项卡中删除现有的JRE库,通过select“添加库”button添加一个新的JRE,然后按照提示安装JRE 7作为我的默认JRE。 现在一切都回到工作。

我发现在我的情况下,其他的解决scheme这个问题: Eclipse->Preferences->Java->Installed JRE然后按buttonsearch。 在Linux /usrselect文件夹,然后Eclipsefind所有的JVM。

select另一个JVM也是最新的 。 这是解决我的情况。

只要进入你的包资源pipe理器,然后按F5,或对于一些笔记本电脑FN + F5。 原因是eclipse认为这些文件是在某处,但是文件实际上是在其他地方。 刷新它,你把他们都在同一页面上。 不要担心,你不会失去任何东西,但是如果你想要特别小心,只需要把你的java项目文件夹中的文件备份到安全的地方。

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

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

 JavaBuilder handling ImageBuilderInternalException while building: PizzaService org.eclipse.core.internal.resources.ResourceException: Resource '/PizzaService/bin/tables' already exists. 

因为事实certificate,我在另一个源文件夹中有一个与这个新软件包同名的文本文件。 所以我已经把文本文件名从“Tables”改为“Tabless”,我可以再次运行我的项目。

希望这可以帮助。

我面对同样的错误,错误是在一个导入的外部jar子。 删除后,该项目为我工作。

当我将安装的JRE更改为JDK7而不是JRE7时,发生在我身上。 编译的所有东西,但我不能从Eclipse运行任何东西“eclipse-error-could-not-find-or-load-main-class”

固定; 回到之前的JRE7。

使用Ctrl + Shift + R(Windows)重命名该类,它将改变引用的类的名称,然后执行相反的过程。 在我的情况下,它是由环境中几个项目中相同的类名造成的,Eclipse很难理解哪个是哪个。

按照步骤工作对我来说:1.Remove从eclipse(构buildpath)configuration构buildpath2.刷新3.addconfiguration构buildpath – >源 – >添加文件夹 – >检查SRC确定。

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

  1. closures日食
  2. 删除工作空间中的“.metadata”文件夹。 (可能是隐藏文件夹)
  3. 打开eclipse(它会自动在您的工作空间中创build“.metadata”文件夹)
  4. 尝试运行该程序。
  • 什么是分配Java应用程序的最佳方式?
  • 提取和打包库到jar文件之间的区别
  • 使用maven构build一个胖jar子
  • 访问限制:“应用程序”types不是API(对所需库rt.jar的限制)
  • 如何在运行时从文件夹或JAR加载类?
  • 如何grep或searchOpenSSL的.jar文件?
  • 什么导致java.lang.IncompatibleClassChangeError?
  • 如何使用Bash从JAR读取MANIFEST.MF文件
  • runnable jar库处理选项有什么区别?
  • 在Android Studio中创buildaar文件
  • 在android java代码中使用common.lang.StringUtils时,获取NoClassDefFoundError?