我写了一个简单的java程序,如下所述。不幸的是发生编译错误。
class String {
public static void main(String[] args) {
System.out.println("stre");
}
}
在命令提示符编译期间出现以下内容:
c:\ Java> java String 错误:在类String中找不到主要方法,请将main方法定义为: public static void main(String [] args)
它不能用于我的任何程序,甚至不是这个简单的程序!这是为什么?
修改 的
现在我有:
import java.lang.*;
import java.lang.String.*;
class incogn {
public static void main(String[] args) {
System.out.println("stre");
}
}
它不起作用。为什么不起作用?
它说的确如此。
您对Java.lang.String []的说法有效,但为什么不呢?为什么我不需要在此之前提出任何一个?
答案 0 :(得分:3)
这可能是因为您的班级使用名称String
,与java.lang.String
发生冲突;换句话说,你已经写过你的main方法将类的实例作为输入,而不是main方法需要采用的方法,即java.lang.String
。尝试
public static void main(java.lang.String[] args) {
答案 1 :(得分:0)
好吧,给你的班级名String
然后调用main(String[] args)
是不明确的,如果它意味着java.lang.String
或你新定义的类,但是使用java范围规则,它将使用你的,除非另有声明。
修改后更新
没有java.lang.String
包 ,但它是 类 。因此,你不能说
import java.lang.String.*;
通过添加“.*
”,编译器会理解这是指某个包String
。
一个例外是静态导入,但这不是你需要的。
答案 2 :(得分:0)
你不应该调用你的类String,它会与java类String冲突。
或者,您可以将代码更改为:
class String {
public static void main(java.lang.String[] args) {
System.out.println("stre");
}
}
答案 3 :(得分:0)
所以,编写源代码如下:
public class StringDemo {
public static void main(String[] args) {
System.out.println("stre");
}
}
立即编译。我相信它会运作良好。
答案 4 :(得分:0)
1)该课程应为public
2)避免将您称为班级String
,因为它与java.lang.String
具有重复的名称(您仍然可以,但不是很好)。否则,您的main方法的参数类型错误。
3)您无需从java.lang
包明确导入。
public class String {
public static void main(java.lang.String[] args) {
System.out.println("stre");
}
}
OR
public class YourClass {
public static void main(String[] args) {
System.out.println("stre");
}
}
尝试使用第二种形式。