package abc ;
class Trying
{
Trying ()
{
System.out.println("hello");
}
}
public class trying {
public static void main(String[] args) {
new Trying () ;
}
}
当我将类的名称从Trying更改为其他名称时,它会起作用,但在这里它说:
错误:无法找到或加载主类abc.trying /Users/name/Library/Caches/NetBeans/8.2/executor-snippets/run.xml:53:Java返回:1 BUILD FAILED(总时间:0秒)
为什么会这样? 在我提出的任何问题中,我都没有找到这样的案例。
答案 0 :(得分:1)
Java是区分大小写的语言,但没有文档说明类名称应区分大小写。
在eclipse中它会显示语法错误
类文件冲突:存在具有不同情况的资源: ' /sample/bin/abc/Trying.class'
OR
如果没有显示错误,它将只创建一个类Trying
或trying
的类文件。
<强> 1)强>
如果生成Trying
类的类文件,那么它将抛出
错误:在abc.trying类中找不到主要方法
由于类Trying
中没有主方法,因此在运行时它会查找要启动的主方法。
<强> 2)强>
如果生成trying
类的类文件,那么它将抛出
线程中的异常&#34; main&#34; java.lang.NoClassDefFoundError:
在运行时它会查找类Trying
,因为它调用了类main
的{{1}}。它无法加载未编译的。
因此我们可以得出结论java不允许两个具有sameName的类甚至不同的情况
类名称区分大小写的更多详细信息为here
答案 1 :(得分:0)
class Trying
{
Trying ()
{
System.out.println("hello");
}
}
public class Try_Main {
public static void main(String[] args) {
new Trying () ;
}
}
请使用不同名称以外的两个不同的姓名。 编译时,编译将成功,编译将创建两个具有相同名称但不同情况的类文件。但是,操作系统只允许单个文件,它只是覆盖第一个文件(首先在编译时创建,然后在第二个文件中创建)。在运行时,您将收到运行时错误,因为其中一个类不见了。所以,请使用不同的名字......
答案 2 :(得分:0)
好吧,这个课程应该公开 ,并确保将文件名保存为班级名称
答案 3 :(得分:-1)
您已指定多次尝试。
package abc;
public class Trying {
public static void main(String[] args) {
trying1();
}
public static void trying1() {
System.out.println("Good?!");
}
}