我是Java初学者,正在尝试使用IntelliJ运行我的代码,我刚刚将它安装为JDK 1.7的IDE。下面这段代码甚至不能编译,并不断给我错误:

Error: Could not find or load main class libTest

Code

import java.lang.Integer;
import java.lang.String;
import java.lang.System;
import java.util.*;

class book {

    private String name = "trial";
    private int bookCode=1;
    private int issued=0;

     public void Issue(){
         if(issued==0) {
             issued=1;
             System.out.println("You have succesfully issued the book");
         }
         else {
             System.out.println("The book is already issued. Please contact the librarian for further details");
         }
    }

    public int checkCode() {
        return bookCode;
    }

    String readName() {
        return name;
    }

    public void setName(String newName){
        name=newName;
    }

    public void setBookCode(int newCode){
        bookCode=newCode;
    }
}

class library {
    private ArrayList books=new ArrayList();

    public void getList(){
        for(int bk:books){
            String bName=books(bk).readName();
            System.out.println((bk+1)+")  "+bName);
        }
    }
}

public class libTest{
    public static void main(String[] args){
        library newLib= new library();
        System.out.println("code working");
   }
}

有任何改变,我必须在编译器设置??或者是代码。


当类在默认文件夹中,即类没有声明包时,我就遇到过这样的问题。

所以我猜使用包语句(例如。将org.me.mypackage;)打包到类顶部应该可以修复它。


对我来说,解决方案是在项目设置下修复输出目录。在此之前,我仅使用“target”作为Project编译器输出。相反,我将其更新为完整路径,例如D:\dev\sigplusjava2_68\target


显式地创建一个out文件夹,然后将输出路径设置为C:\Users\USERNAME\IdeaProjects\PROJECTNAME\out

在刚刚发布的时候似乎对我有用,期望IntelliJ制作文件夹不会。


还可以尝试IntelliJ为您创建一个新的运行配置:

通过单击找到上一个

然后移除

点击ok。

现在,(重要步骤)打开包含主方法的类。单击左侧Project Pane中的类名可能是最简单的方法。

按Alt + Shift + F10,你会得到一个

现在按回车键!!

Tadah ? ? (有用吗?)


我知道之前有人问过这个问题,但我只是被这个问题绊倒了,我想我的发现可能会帮助到其他人。正如所指出的,错误消息基本上是out文件夹的结果。这是因为,当您试图运行程序时,它首先编译代码,并将编译后的结果放到输出位置,然后它尝试从输出位置加载编译后的代码。如果编译后的代码不在预期的位置,就会得到错误。

我特别想要分享的一点是,有些时候,代码没有编译(构建),即使您的运行配置在配置面板的“Before launch”部分指定了“构建”。

这种情况什么时候会发生? 可能导致这种情况发生的一种情况是,如果您正在使用模块,并手动删除模块的目录。例如,如果我有一个名为“foo”的模块,那么在out/production下应该有一个名为foo的目录。如果手动删除它,构建系统可能不知道需要重新构建它。

更糟糕的是,如果你选择Build | Build module 'foo',它仍然可能无法重建模块。如果是这种情况,您应该在模块中选择一个文件,例如'bar.java',然后选择Build | Recompile 'bar.java'。现在应该恢复out目录out/production/foo。

由于IntelliJ通常知道发生的任何变化,这让我感到惊讶,并花了一些时间来弄清楚,所以我想分享一下。


这可能会有帮助:

1)“重建”菜单->“重建项目”。 有时Intellij不重写类,因为它们已经存在,这样你就可以让Intellij重写所有的东西。

2)“运行”菜单->“编辑配置”->删除配置文件->添加配置文件(如果是Java应用程序,则为“应用程序”),从“主类”下拉菜单中选择您的主类。

3)“重建”菜单->“重建项目”。


如果以上答案都不适合你,只需关闭IntelliJ IDE,并从项目的根目录中删除IntelliJ IDE文件和文件夹:

rm -rf .idea *.iml 

然后用IntelliJ打开项目。它现在必须起作用。


详细阐述布拉德·图雷克的解决方案……一个默认的IntelliJ Java项目模板需要一个名为Main的文件,该文件定义了类Main和Main()方法入口点。如果该方法包含在另一个文件(和类)中,则更改Run配置:

运行配置窗口

在IntelliJ中打开项目,使用Run:Edit Configurations… 菜单打开生成配置窗口。 类的条目没有列出包含公开 Main()输入方法,输入正确的文件名。(图片中的配置是错误的,这就是为什么它在配置面板中是红色的。) 我的main()入口方法在类(和文件)ScrabbleTest中。因此,将Main class:更改为ScrabbleTest可以修复运行时错误。

正如其他人所指出的,您必须使用新的配置重新构建。我正在使用一个包,但这似乎没有使差异输入法。希望这能有所帮助。


检查你的类模块:我在intellij遇到了这个问题: 我有一个maven多模块项目,问题是我运行的类不存在的模块配置,所以我的问题是通过设置正确的模块(“编辑配置”->“使用模块类”)

希望这对你有所帮助


在我的案例中,在模块的构建中。gradle mainClassName赋值必须声明完全限定的类名,即。与主类源代码文件中指定的包名相同。


打开模块标签(按Ctrl+Shift+Alt+S)。我在一个项目下有两个模块。我在移除第二个冗余模块后解决了这个问题(见截图)。


我必须将“src”文件夹标记为“Sources”。在重新启动IntelliJ并重新构建项目后,我可以运行项目而没有进一步的问题(见截图)。 编辑:您可以通过File->项目结构或按Ctrl+Shift+Alt+S访问“项目结构”选项卡。


遵循以下步骤

去跑步 点击编辑配置 点击左上角的绿色+符号 选择您正在工作的类型,例如“应用程序” 现在输入要运行的类的名称,而不是未命名的类 在写Main class的地方做同样的事情,就在它的下面。

好啊!…你的代码将运行:)


In my case the problem seemed to be related to upgrading IntelliJ. When I did this I overwrote the files from the old IntelliJ with the files from the new IntelliJ (2017 community to 2018 community). After that all of my projects were broken. I tried everything in this thread and none of them worked. I tried upgrading gradle to the latest version (4 to 4.8) and that didn't work. The only thing that worked for me was deleting the entire IntelliJ folder and reinstalling it. All of my projects worked after that.


使缓存无效并重新启动IntelliJ,这对我有用。


我遇到了这个问题,我尝试了我能想到的所有方法,在这个网站上。

从远程分支提取后,没有提取任何Java类。在项目层次结构中,所有类的名字都是红色的j,而不是蓝色的c。

最后,我尝试遵循本教程和几个步骤,尝试了一些没有描述的东西,并修复了问题: https://www.jetbrains.com/help/idea/creating-and-managing-modules.html

以下是我所做的:

进入文件|项目结构,或按Crtl+Shift+Alt+S 在Project Settings部分下选择Modules。 在Sources选项卡中单击“Mark as:”行上的Sources。 单击Apply按钮。

因为某种原因,我所有的课都是蓝C。

对IntelliJ和/或IDE有更好理解的人可能能够解释这种现象,但我所知道的是,现在它可以看到所有的类,更重要的是主类,并运行。


对我来说,我尝试了上面的几个选项,没有工作。然后我只是重命名了我的Application类,这可能迫使intelliJ构建一个新的jar和错误消息开始改变。然后我重新命名它,它工作。


只需重新构建项目(CTRL+F9),并再次检查(编辑配置),如果你有一个正确设置的主类和模块(如果有的话)


将该目录标记为源目录。通过Ctrl+Shift+Alt+S打开


我已经尝试了这里建议的所有方法,但都无济于事。最后,我简单地创建了一个新的Maven应用程序,并逐个手动地将pom.xml和java文件和资源复制到其中。现在一切都正常了。我是IntelliJ的新手,完全没有印象,但它很容易进入不稳定的状态。


modules.xml有错误的内容,我不知道我的IDEA有什么问题。


我从其他地方继承了一堆. java文件,不知道如何让它们在任何IDE中工作。最终,我不得不转到Main.JAVA文件所在的命令行,运行javac Main.JAVA。这创建了一堆. class文件。然后IDE就能够弄清楚要做什么。


我在使用Scala/SBT时得到了这个错误。IntelliJ无法找到主类,尽管一切都设置正确。 我的解决方案是:删除<用户>/。sbt/<version>/plugins/目标文件夹,然后重启IntelliJ。


简单的解决方案是在命令行中转到受支持的文件夹,其中是项目的根文件夹。您应该在您的机器中安装SBT。

如果你已经安装了sbt,请运行命令“sbt package”,这将重新编译项目,如果它成功,回到intelliJ它将工作。


在我的例子中,我配置了(相对)长的vm参数。将这些参数(只要可能)转换为环境变量为我解决了这个问题


In my case, the application runs well when code initially was under /src directory under the project. Later I added /main/java directory after the /src, then "Could not find or load main class ..." error happened. At that time you couldn't add /src/main/java/YourMain.java to the run configuration. What I did was to remove the run configuration, then right click the project->Open Module Settings (or F4 after click the Project panel)->Project Settings->Modules delete (x) the old Content Root and + Add Content Root, choose /src/main/java. Rebuild the project and it runs.


您可能指定了一个错误的包,并且包的层次结构也不正确。看下面

在这种情况下,ide会突出显示错误的路径。


这里可以检查的另一件事是传递给JVM的实际命令,并确保它看起来正常。滚动到Run控制台的顶部,它应该是第一行。

“运行配置虚拟机选项”字段中的空格将使应用程序启动命令格式不正确,并可能导致此错误消息

-DsomeArgument="arg with space must be quoted"

在我的情况下,这是一个maven项目,我重新导入maven(右键单击pom.xml文件并单击重新导入),它立即工作。


文件>项目结构>模块>标记“src”文件夹为源。 这应该能解决问题。此外,检查最新的语言选择,以便您不必更改代码或做任何配置更改。


尝试检查您的项目名称和完整目录名称,看看是否包含任何“非英语”单词(如亚洲单词),有时这可能是错误的。重命名项目名称或项目路径包含这样的单词并重新打开它可能有效。


我在Spring中使用IntelliJ,我的主类被包装在JAR中。 我必须在运行/调试配置对话框中标记“包含具有“提供”范围的依赖项”


在我的情况下,它有助于删除线条build.gradle

编译组:com.microsoft。Sqlserver ',名称:'mssql-jdbc',版本:'8.2.0.jre11'

我不知道为什么会发生这种情况,但是在添加指定的库之后,编译的jar停止工作


我们在文件/项目结构.. 答案可能是:

表示为“content root”的文件夹需要一个代码所在的子文件夹。 另外,找到将代码标记为排除和不排除的按钮。 不要与表示排除而不说明在哪个阶段和什么**的复选框混淆 是编译器排除还是运行时排除?你注定要接受考验和抽签。 所以没有那个复选框,只有图标和颜色。

作为一个想法,我们需要破解它最初被认为是如何工作的。他们从来没有把它放在第一位,并开始以过早的编码方式添加东西。 已经这么多年了,你不能指望有任何改善。 但作为治疗,我们可以想出一些方法,让它每次都正确。


如果具有主方法的类正在扩展/实现另一个类/接口,那么它将找不到主类。更改签名就可以了。

我也有同样的问题,几乎每个答案都试过了,但没有一个有效。这招对我很管用。


我遇到同样的问题,用以下方法解决:

关闭所有IDEA窗口 删除C:/Userz/xx/.IdeaIC2019.3文件夹 开放的想法


当我的Java类在src/main/kotlin目录下时,我遇到了这个问题。当我把它移到src/main/java后,问题就不存在了。


我几乎尝试了这里的答案中建议的所有方法,但没有一种对我有效。

在尝试运行应用程序一个小时之后,我注意到我的项目路径包括非ascii字符(阿拉伯字符)。在我将项目移动到没有非ascii字符的路径后,它执行得很好。


I am working with Kotlin but am guessing the problem is the same. I would start a project, create a single file and add main to it and the IDE couldn't find the main. I tried the things in this list and none worked. I finally mentioned my frustration on one of the IntelliJ pages and was contacted. Of course, it worked fine for IntelliJ. After a couple of days back and forth, I noticed that the highlight function wasn't working and mentioned that. It turned out something was wrong with the IDE settings. I still don't know specifically what was wrong but the fix in my case was to reset the IDE settings. File->Manage IDE Settings->Restore Default settings. After this, the green triangle start icon became visible to the left of my main function and things continued to work normally for subsequent projects. Thanks to Konstantin at JetBrain's support for his patience.


在intelliJ中创建项目后,尝试运行以下命令:

mvn package

如果您正在使用gradle,请尝试从命令行通过命令重建项目:

gradle clean build 

无效缓存不起作用。

我编辑了主类java文件,做了一个虚假的更改并运行它。它工作。


在创建项目时选择maven作为类型 (不要勾选“从原型创建”复选框) 在项目资源管理器中,右键单击src下main下的java 选择新课 使用公共静态void main完成类 从运行菜单中选择运行


Goto File->使缓存失效并重新启动。 否则删除rm -rf .idea *.iml 并重新启动InteliJ


当我去“编辑配置”->“修改选项”并勾选“在运行前不构建”选项时,我得到了这个问题,因为我使用IntelliJ来解决简短的编程问题,我不希望它每次都运行构建。

相反,我所做的是分配一个运行构建过程的快捷方式(仅在创建类之后第一次),这修复了错误,然后另一个方便的快捷方式“运行上下文配置”,成功地运行当前关注的任何类中的主方法。


什么都试过了,运气不佳。最后,对我来说(在Mac上)有效的简单解决方案是:

当项目处于打开状态时,转到查找器并将SRC目录移出项目文件夹。IntelliJ意识到src不再存在,并更新自己。 在项目仍然打开的情况下,将SRC目录移回原位。IntelliJ更新了它的项目配置,此时一切正常。


对我来说,删除项目目录中的。idea文件工作正常!关闭ide, 删除项目中的.idea,打开项目构建并加载!


你可以在项目目录下的pom.xml文件上运行maven命令:

MVN清洁安装


在尝试了几乎每一个建议在这一步,我仍然不走运。在两台不同的机器上试过。请教一位有经验的同事。

最后:我的问题的解决方案,可能是问题的原因:

在我的mac电脑上,其中一个文件夹名称包含一个正斜杠,就是这样

(我们在共享驱动器上使用了(深度)嵌套的文件夹结构;我的同事在Windows上工作,对路径中的正斜杠没有问题)

注意:虽然我想在这个线程上提供我的答案,但我从stackoverflow得到了一个“警告”,那里已经有超过30个答案。但他,对我毫无用处。因为这是一个可以追溯到2012年的线索,在2023年仍然活跃,有很多答案(以及同一个问题的原因)。我决定在这里也加入我的50美分。希望它能帮助和节省一些人的时间!!