在import语句中使用 * 时,JVM无法访问用户定义的类
我的类路径是导出CLASSPATH =。:/ home / aksharaaaa / Documents / programs / core_java / class_java:
起初我创建了Employee.java文件作为包,即。,
package com.durgasoft.core;
public class Employee
{
int eid;
String ename;
double esal;
public Employee(int eid1, String ename1, double esal1)
{
eid=eid1;
ename=ename1;
esal=esal1;
}
public void getEmployeeDetails()
{
System.out.println("Employee Details");
System.out.println("-------------------");
System.out.println("Eno:"+eid);
System.out.println("Ename:"+ename);
System.out.println("ESalary"+esal);
}
}
为了编译这个文件,我使用了以下命令'javac -d .. Employee.java'然后在class_java文件夹中创建了com / durgasoft / core / Employee.class文件。
然后我只使用以下代码在class_java文件夹中创建了文件test.java。
import com.durgasoft.core.*;
public class test{
public static void main(String[] args){
Employee e= new Employee(111, "viay", 3333.333);
e.getEmployeeDetails();
}
}
当我编译test.java文件时,JVM正在上升跟随错误
<b>test.java:5: error: constructor Employee in class Employee cannot be applied to given types;
Employee e= new Employee(111, "viay", 3333.333);
^
required: no arguments
found: int,String,double
reason: actual and formal argument lists differ in length
test.java:6: error: cannot find symbol
e.getEmployeeDetails();
^
symbol: method getEmployeeDetails()
location: variable e of type Employee 2 errors
如果我使用完全限定名称,即导入com.durgasoft.core.Employee;在test.java文件中,JVM能够编译并运行...
答案 0 :(得分:0)
看起来你从类路径中选择了不同的类。我可能会发生,而且令人困惑。我几次这样的情况,通常JWhich可能有所帮助。它告诉你你正在使用什么类。您可以使用实用程序或源代码。它是如此小而简单 - 我总是在我的项目和代码库中使用它并使用它来消除歧义。