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

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


当前回答

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

其他回答

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

运行配置窗口

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

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

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

MVN清洁安装

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

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

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

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

-DsomeArgument="arg with space must be quoted"