我一直在为我的班级编程工作。我正在使用NetBeans。我完成了我的项目并且工作正常。当我尝试运行它时,我收到一条消息“没有找到主要类”。以下是一些主要的代码:
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();
之前我发布了这个,但有几个问题。我已经修复了其他人,现在只剩下这一个了。任何建议将不胜感激。
答案 0 :(得分:28)
如果您只想运行该文件,请右键单击包浏览器中的类,然后单击“运行文件”或( Alt + R , F )或( Shift + F6 )
答案 1 :(得分:8)
此外,对于那些有一些稍微不同的问题的人,Netbeans在从#34;主要类对话窗口"进行浏览时无法找到该类。
可能是您的主要方法确实具有正确的签名。在我的情况下,我忘记了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/
答案 2 :(得分:2)
我在Eclipse中遇到了同样的问题,所以也许我所做的解决它可以帮到你。 在项目属性中,我必须将启动配置设置为包含main方法的文件(我不知道为什么它没有自动设置为正确的文件)。
答案 3 :(得分:2)
在项目属性中的“运行”选项卡下,指定主类。 此外,要避免此问题,您需要在创建新项目期间选中“创建主类”。在属性中指定主类应始终有效,但如果在极少数情况下它不起作用,则可以通过重新创建项目来解决问题,如果未选中,则不要忘记选中“创建主类”。
答案 4 :(得分:2)
在Netbeans中创建新项目 - Maven - Java应用程序时 IDE无法识别第一类条目上的Main类。 (在下面的第8步中,我们看不到任何课程。)
首先创建泛型类,然后创建Main类,Netbeans正在注册Main类,可以运行和调试应用程序。
对我有用的步骤:
希望这也适用于其他人。
答案 5 :(得分: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();
}}
试试
答案 6 :(得分:1)
如果添加结束括号的建议有效,我建议在代码中添加缩进,以便每个右括号分开,即:
public class LuisRp3 {
public static void main(String[] args) throws FileNotFoundException {
// stuff
}
}
这有助于提高可读性。
另一方面,如果您忘记复制代码中的结束括号,或者上述建议不起作用:打开配置并查看是否可以手动设置主类。我担心我没有使用过很多NetBeans,所以我无法帮助你选择那个选项。我最好的猜测是“运行配置”,或类似的东西。
修改:如果添加结束括号不起作用,请参阅peeskillet's answer。
答案 7 :(得分:1)
在这种情况下可能会出现一些问题(假设您的示例后面有代码,并且不会让您的代码不加括号)。
首先,如果您正在运行整个项目而不仅仅是当前文件,请确保您的项目是主项目,并且项目的主类设置为正确的文件。
否则,我看到同学的代码很好,但他们仍然遇到同样的问题。有时,在Netbeans中,一个简单的解决方法是:
如果这不起作用,则尝试清除Netbeans缓存,如果所有其他方法都失败,那么只需执行干净的卸载并重新安装Netbeans。
答案 8 :(得分:1)
我在准备要发布的过程中所建立的联系对我来说确实是一劳永逸。在您看到连接之前,Main Class:
框中的内容并不完全清楚。 (请注意,包含main
方法的类不一定要命名为Main
,但是main
方法不能具有其他名称。)
答案 9 :(得分:0)
您需要在代码的末尾添加}}
。
答案 10 :(得分:0)
您需要将主类重命名为Main
,它不能是其他任何内容。
您创建的包和类的文件数无关紧要,您必须为主类Main
命名。
这就是全部。
答案 11 :(得分:0)
在工具栏中搜索按箭头并选择自定义... 它将打开项目属性。在类别中选择RUN。 寻找主类。 清除所有Main Class字符并键入您的类名。 单击“确定”。 并再次运行。 问题解决了。
答案 12 :(得分:0)
我还经历过Netbeans向我抱怨“找不到主类”。问题出在我以前知道的一个项目上,但是当我在另一台PC上尝试时失败了。
我的具体失败原因可能与OP不同,但是我仍然会分享我在调试过程中所学的知识,以防万一这些见解可帮助任何人找出与该主题相关的独特问题。
我了解到,启动NetBeans后,它应该执行一个名为“扫描项目...”的步骤。
在此阶段之前,您应该注意到,其中包含任何带有main()方法的.java文件都将显示在“项目”窗格中,其图标如下所示(无箭头):
此扫描阶段完成后,如果在文件中发现main()方法,则该文件的图标将更改为此(带有箭头):
因此,在我的系统上,“扫描项目...”步骤似乎失败了,而是停留在“打开项目”步骤中。
我还注意到右下角有一个红色小图标,提示该问题使我感到不适:
Unexpected Exception
java.lang.ExceptionInInitializerError
点击该链接可向我显示该错误的更多详细信息:
java.security.NoSuchAlgorithmException: MD5 MessageDigest not available
at sun.security.jca.GetInstance.getInstance(GetInstance.java:159)
at java.security.Security.getImpl(Security.java:695)
at java.security.MessageDigest.getInstance(MessageDigest.java:167)
at org.apache.lucene.store.FSDirectory.<clinit>(FSDirectory.java:113)
Caused: java.lang.RuntimeException
at org.apache.lucene.store.FSDirectory.<clinit>(FSDirectory.java:115)
Caused: java.lang.ExceptionInInitializerError
at org.netbeans.modules.parsing.lucene.LuceneIndex$DirCache.createFSDirectory(LuceneIndex.java:839)
提到“ java.security”时,使我想起了我用机器的“ java.security”文件(具体来说,我正在执行this thread的Salvador Valencia的步骤,但操作不正确并损坏了“ java.security”:))
一旦我修复了对“ java.security”文件造成的损坏,NetBeans的“扫描项目...”步骤又开始起作用,绿色的小箭头再次出现在文件上,我再也听不到“未找到主要类别”问题。
答案 13 :(得分:-1)
按下绿色箭头(运行)左侧的锤子,清洁程序&amp;建立项目。 按绿色箭头。 选择主类。
希望它适用于你。
答案 14 :(得分:-2)
确保访问修饰符公开而非私有。我一直有这个问题,这总是我的问题。
public static void main(String [] args)