NetBeans中找不到主类

30

我一直在为我的编程课作业努力。 我正在使用NetBeans。 我完成了我的项目,它运行得很好。 但是当我尝试运行它时,会收到一个消息,上面写着"找不到主类"。 这里有一些关于main方法的代码:

package luisrp3;
import java.io.FileNotFoundException;
import java.io.PrintStream;

public class LuisRp3 {

public static void main(String[] args) throws FileNotFoundException  {

    java.io.File newFile = new java.io.File("LuisRamosp4.txt");

    if (newFile.exists()) {
        newFile.delete();
    }

    System.setOut(new PrintStream(newFile));

    Guitar guitar = new Guitar(); 

我之前发布过这个问题,但遇到了一些问题。我已经解决了其他问题,现在只剩下这一个。非常感谢您的任何建议。


1
你如何运行你的程序? - assylias
我有一个吉他类。 - Luis Ramos
1
@assylias - 我刚刚点击了绿色的播放箭头。 - Luis Ramos
@LuisRamos:点击您的类“LuisRp3”内部,然后再次按下绿色按钮。它能工作吗? - Jeroen Vannevel
@LuisRamos 这个链接提供了一些解决方案,也许它们可以帮助你至少隔离问题:https://frickelblog.wordpress.com/2010/04/30/no-main-class-found/ 很可能这只是NetBeans中的一个错误。我在Eclipse中遇到过类似的问题,不得不重新启动几次才能解决问题。 - DerStrom8
显示剩余4条评论
16个回答

40
  1. 右键单击项目资源管理器中的项目
  2. 点击属性
  3. 点击运行
  4. 确保您的主类是您想要作为入口点的类。(请确保使用完全限定名称,即mypackage.MyClass)
  5. 点击确定。
  6. 运行项目 :)

如果只想运行文件,请右键单击包资源管理器中的类,然后单击“运行文件”或(Alt+R, F)或(Shift+F6)


我也遇到了同样的问题,并按照您的步骤进行了操作。但问题仍然存在。我能够在我的系统中运行该项目,但是当我将此dist文件夹复制到其他计算机并尝试执行时,出现了错误。可能是什么问题? - Pawan
今天我遇到了同样的问题。我最终关闭并重新打开了我的项目,然后它找到了主方法。希望对你有所帮助。 - JavaJeff

10

另外,对于其他人遇到稍微不同的问题,即在“主类对话框窗口”浏览时,Netbeans无法找到类。

可能是您的主方法没有正确的签名。在我的情况下,我忘记了args参数。

例如: public static void main(String[] args)

修饰符public和static可以以任何顺序编写(public static或static public),但惯例是使用如上所示的public static。

Args:您可以将参数命名为任何内容,但大多数程序员选择“args”或“argv”。

在此处阅读更多信息: http://docs.oracle.com/javase/tutorial/getStarted/application/


9
在Netbeans中创建新项目 - Maven - Java应用程序时,IDE无法识别第一类条目上的主类(在下面的步骤8中我们看不到任何类)。
当首先创建一个通用类,然后创建主类时,Netbeans会注册主类,应用程序可以运行和调试。
以下是对我有效的步骤:
1.创建新项目 - Maven - Java应用程序(创建的项目:mytest;创建的包:com.me.test) 2.右键单击包:com.me.test 3.新建>Java类>命名为您想要的'Whatever' 4.右键单击包:com.me.test 5.新建>Java主类>命名为:“Main”(必须是“Main”) 6.右键单击项目mytest 7.单击属性 8.单击运行>在“主类”文本框旁边:>浏览 9.您应该看到:com.me.test.Main 10.选择它并单击“选择主类”
希望这对其他人也有用。

3

在为发布做准备时,我建立的连接真正地解决了这个问题。直到你看到这些连接之前,不完全明显应该放什么到Main Class:框中。(请注意包含main方法的类可以不一定被命名为Main,但是main方法不能有其他名称。)

enter image description here


2

我在Eclipse中遇到了相同的问题,也许我解决它的方法能够帮助你。

在项目属性中,我必须将启动配置设置为包含main方法的文件(我不知道为什么它没有自动设置为正确的文件)。


2
在项目属性中,在运行选项卡下,指定你的主类。此外,为了避免这个问题,你需要在创建新项目时勾选"创建主类"。在属性中指定主类应该总是有效的,但如果在某些罕见情况下它不起作用,则可以通过重新创建项目并确保勾选"创建主类"来解决问题。

1
如果这是你的全部代码,你忘记关闭主方法了。 其他部分看起来很好。
public class LuisRp3 {

public static void main(String[] args) throws FileNotFoundException  {

    java.io.File newFile = new java.io.File("LuisRamosp4.txt");

    if (newFile.exists()) {
        newFile.delete();
    }

    System.setOut(new PrintStream(newFile));

    Guitar guitar = new Guitar(); 
}}

尝试一下。

2
这不是整个代码。我只发布了一部分,因为这是一个班级作业。谢谢。 - Luis Ramos
1
我正在处理建议的“try/catch”。谢谢。 - Luis Ramos

1
如果添加闭合括号的建议有效,我建议在您的代码中添加缩进,以便每个闭合括号都有一个单独的空格,即:
public class LuisRp3 {

    public static void main(String[] args) throws FileNotFoundException  {

    // stuff

    }
}

我只是帮助提高可读性。

另一方面,如果您只是忘记在代码中复制闭合括号,或者上述建议不起作用:打开配置文件,看看是否可以手动设置主类。恐怕我没有使用过NetBeans,所以无法告诉您该选项在哪里。我最好的猜测是在“运行配置”下面,或类似的地方。

编辑:如果添加闭合括号无效,请参见peeskillet的答案


1
在这种情况下可能会出现几个问题(假设您的示例后面有代码,而不是只留下未加括号的代码)。
首先,如果您运行的是整个项目而不仅仅是当前文件,请确保您的项目是主项目,并且项目的主类设置为正确的文件。
否则,我曾经见过同学们的代码没有问题,但他们仍然遇到了这个问题。有时,在Netbeans中,一个简单的解决方法是:
1.复制您当前的代码(或在不同的位置备份)
2.删除您当前的文件
3.在您的项目中创建一个新的主类(您可以将其命名为旧的类)
4.将您的代码粘贴回去

如果这样做不起作用,请尝试清除Netbeans缓存,如果一切都失败了,请进行干净的卸载和重新安装Netbeans。

1
在工具栏中搜索并按箭头选择“自定义...”,这将打开项目属性。在类别中选择“RUN”。查找“Main Class”。清除所有“Main Class”字符并输入您的类名。点击确定。然后再次运行。问题已解决。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接