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

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


当前回答

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.

其他回答

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

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

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

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

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

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

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.

无效缓存不起作用。

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

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