我是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");
   }
}

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


当前回答

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

其他回答

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

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

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

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

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

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

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

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

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

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

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

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


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

通过单击找到上一个

然后移除

点击ok。

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

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

现在按回车键!!

Tadah ? ? (有用吗?)

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

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

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.