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

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


当前回答

显式地创建一个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通常知道发生的任何变化,这让我感到惊讶,并花了一些时间来弄清楚,所以我想分享一下。

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

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

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

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

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

rm -rf .idea *.iml 

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

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

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