Java 在Netbeans中找不到主类
在本例中,当我将类的名称从尝试更改为其他名称时,它会起作用,但在这里它表示: 错误:无法找到或加载主类abc。正在尝试 /Users/name/Library/Caches/NetBeans/8.2/executor snippets/run.xml:53:Java返回:1 生成失败(总时间:0秒) 为什么会这样?Java 在Netbeans中找不到主类,java,netbeans,Java,Netbeans,在本例中,当我将类的名称从尝试更改为其他名称时,它会起作用,但在这里它表示: 错误:无法找到或加载主类abc。正在尝试 /Users/name/Library/Caches/NetBeans/8.2/executor snippets/run.xml:53:Java返回:1 生成失败(总时间:0秒) 为什么会这样? 我在已经提出的任何问题中都没有发现这种情况。您指定了多次尝试 package abc ; class Trying { Trying () { System.out.p
我在已经提出的任何问题中都没有发现这种情况。您指定了多次尝试
package abc ;
class Trying
{
Trying ()
{
System.out.println("hello");
}
}
public class trying {
public static void main(String[] args) {
new Trying () ;
}
}
Java是区分大小写的语言,但并没有说明类名是否区分大小写的文档 在eclipse中,它将显示语法错误 类文件冲突:存在具有不同大小写的资源: “/sample/bin/abc/Trying.class” 或 如果未显示错误,它将仅创建一个类的类文件,要么
尝试,要么尝试
1)
如果生成了Trying
类的类文件,那么它将抛出
错误:在类abc中找不到主方法。正在尝试
因为类中没有main方法正在尝试,并且在运行时它正在寻找要启动的main方法
2)
如果生成了trying
类的类文件,那么它将抛出
线程“main”java.lang.NoClassDefFoundError中出现异常:
在运行时,它在这里寻找类Trying
,因为它调用了类Trying
的main
。它无法加载,因为它未编译
因此,我们可以得出结论,java不允许两个具有相同名称的类,即使是不同的情况
有关类名区分大小写的详细信息,请参阅
请在不同的情况下使用两个不同的类名,而不是相同的名称在编译时,编译将成功,编译将创建两个名称相同但案例不同的类文件。但是,操作系统只允许一个文件,它只是用第二个文件覆盖第一个文件(首先在编译时创建,然后是第二个文件)。在运行时,您会得到一个运行时错误,因为缺少一个类。因此,请使用不同的名称…好吧,这个类应该是公共的,并且确保保存文件名,因为类名类名区分大小写,不是吗Trying
和Trying
是两个不同的类,不是吗?Trying和Trying是不同的类。您使用的是哪个jdk和操作系统?我安装了这个:jdk-8u121-macosx-x64(1)。dmg
package abc;
public class Trying {
public static void main(String[] args) {
trying1();
}
public static void trying1() {
System.out.println("Good?!");
}
}
class Trying
{
Trying ()
{
System.out.println("hello");
}
}
public class Try_Main {
public static void main(String[] args) {
new Trying () ;
}
}