2 try763738799 try763738799 于 2016.01.20 19:46 提问

java程序在eclipse运行下出错,但是在cmd可以正常运行,求大神!

源代码:
class Person{
private String name;
private String location;

Person(String name){
    this.name = name;
    location = "beijing";
}

Person(String name,String location){
    this.name = name;
    this.location = location;
}

public String info(){
    return "name:"+name+"location:"+location;
}

}

class Student extends Person {
private String school;
Student(String name,
String school) {
this(name,"beijing", school);
}
Student(String n,String l,String school) {
super(n,l);
this.school = school;
}
public String info() {
return super.info()+
" school: "+school;
}
}

class Teacher extends Person{
private String capital;

Teacher(String name,String capital){
    this(name,"beijing",capital);
}

Teacher(String n,String l,String capital){
    super(n,l);
    this.capital = capital;
}

public String info(){
    return super.info()+"location"+capital;
}

}

public class TestTeacher {
public static void main(String[] args) {
Person p1 = new Person("A");
Person p2 = new Person("B","shanghai");
Student s1 = new Student("C","S1");
Student s2 = new Student("C","shanghai","S2");
System.out.println(p1.info());
System.out.println(p2.info());
System.out.println(s1.info());
System.out.println(s2.info());

    Teacher t1 = new Teacher("D","Professor");
    System.out.println(t1.info());
}

}

错误:
Exception in thread "main" java.lang.NoSuchMethodError: Person.(Ljava/lang/String;)Vat TestTeacher.main(TestTeacher.java:55)

8个回答

caozhy
caozhy   Ds   Rxr 2016.01.20 19:50

person构造函数前面加上public

try763738799
try763738799 也不行呀,我怀疑是配置问题,但是想不通呀
2 年多之前 回复
try763738799
try763738799   2016.01.21 10:10

应该是我之前有一个Person.class,造成混淆啦,谢谢大家的解答。

wojiushiwo945you
wojiushiwo945you   Ds   Rxr 2016.01.20 20:26

不是吧,我测试了你的代码,Eclipse和cmd都没有问题啊。我的环境是jdk1.8+Eclipse Mars Release (4.5.0)。
你的前面三个类是一个Person类文件中,后面的TestTeacher类是一个文件。你是这样的吗?

try763738799
try763738799 一传值就出错,环境在哪看
2 年多之前 回复
try763738799
try763738799   2016.01.20 22:37

我把所有的Person都改成Perso就运行出来了。

rui888
rui888   Ds   Rxr 2016.01.21 09:20

删除掉。重新试试。排除eclipse 自身的原因。

Royal_lr
Royal_lr   Ds   Rxr 2016.01.21 09:55

这个十有八九是你的视图的问题

qq_26946497
qq_26946497   2016.01.21 21:02

的确问题不在代码,是文件名、包路径之类的问题

91program
91program   Ds   Rxr 2016.01.20 20:14

代码上确实没有看到明显的问题,在 Eclpise 调试时出错就单执行一个,看看出错的哪一行各个变量的值是否是你想要的吧。

try763738799
try763738799 一传值就出错
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
JAVA程序在eclipse下可运行但不能在cmd命令下运行的原因
原文在这里 对我自己而言,是这个原因:
解决python在eclipse运行正常在命令行里运行提示包导入错误
最近遇到这样的文字,在eclipse写好的程序在
一个Maven项目在eclipse中正常,但在IDEA中启动时报错
这个项目十有八九最初是在ecplise创建的,框架上十有八九整合了Mybatis,报的错误十有八九是org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 产生这个现象原因是这个Maven项目还不是一个不依赖IDE的纯Maven项目。 它在ecplise之所以不报错是因为eclipse buil...
在eclipse中可以运行,在idea中就报错,哪位大神知道这是啥原因啊
-
Eclipse可以运行但是命令行窗口却执行出错的原因
用了Eclipse几个月了,突然今天想用命令行执行但是在命令行中竟然出错了 你可以认为是环境配错了,可以去检查自己的jdk配置环境,但是我检查过没错 最后原来犯了一个很弱智的错误,那就是在Eclipse中我们常常会在包下创建java文件 但是在命令行的的时候一定要把你的包名去掉,否则会报上述错误的哈,相信大家不会犯这样的错误的哈!
在cmd中运行java程序
在cmd中运行java程序自学java以来,已经习惯了eclipse智能傻瓜式的编程,今儿同学问我在cmd中如何运行引用非JDK中jar包的程序,一时间麻爪了,现在对eclipse等开发环境是又爱又恨啊=_=。现将在cmd中运行java程序的问题做下记录:绝对路径下 运行简单程序 直接采用javac MyClass.java编译,生成class文件; 然后采用java MyClass.class
cmd下运行java程序的注意事项
在cmd下运行java类程序是一个java程序员的基本功,但是弄了挺长时间都没怎么弄好,这次算是一个插曲吧,有点丢人了。以前也弄过几次,但是都没怎么弄好,这次终于好使了。下面是我的环境变量设置: 其实一般只要在系统变量下设置java的环境变量就行,因为运行java程序时会根据系统中的环境变量寻找路径上的运行环境。 然后的一点是我们如果是在项目中运行程序,比如这
为何Eclipse编译后的class文件不能在cmd下用java运行?
原因1:存储class的文件的路径中含有空格,这样的classpath中存储的路径只是空格之前的,所以路径不正确,自然jvm运行时就会出现”错误: 找不到或无法加载主类“。 原因2:在Eclipse下的java文件一般是在package中,这时javac去编译时就要注意了,需要用javac -d 《生成package的路径》 *.java,这时生成的就是package(文件夹)加上class文件
在cmd中运行java程序出错
进入命令行win+R 输入cmd, 按下Enter 进入命令行窗口 使用javac 进行编译的时候 如果提示 'JAVAC' 不是内部或外部命令,也不是可运行的程序或批处理文件 这样的错误提示说明是配置错误,修正方法如下3点 使用java 进行运行时 如果提示 " Could not find or load main class test.class" 一般检查main函数
Eclipse里面能执行,但命令行里不能执行class文件
报错:找不到或无法加载主类1.重新设置了环境变量,打开cmd输入java,javac,java- version检测无误。 但是命令行里到MyTest.class目录输入 java MyTest依然显示:错误,找不到或无法加载主类MyTest