MyClass.class
package mypackage;
public class MyClass{
public String getName(String name){
return name;
}
}
这是位于D://javanew/mypackage 中的MyClass.class
Xyz.java
import javanew.mypackage.MyClass;
public class Xyz{
public static void main(String[] args){
System.out.println("Hello");
String n="Arindam";
MyClass mc=new MyClass();
String name=mc.getName(n);
System.out.println(name);
}
}
这是位于d:\javanew内部的Xyz.java。我想在Xyz.java中导入MyClass,但当我打开cmd并输入d:时,将命令写为"javac Xyz.java";我得到以下错误:
Xyz.java:1: error: cannot access MyClass
import javanew.mypackage.MyClass;
^
bad source file: .javanewmypackageMyClass.java
file does not contain class javanew.mypackage.MyClass
Please remove or make sure it appears in the correct subdirectory of the sourcepath.
Xyz.java:10: error: cannot find symbol
MyClass mc=new MyClass();
^
symbol: class MyClass
location: class Xyz
Xyz.java:10: error: cannot find symbol
MyClass mc=new MyClass();
^
symbol: class MyClass
location: class Xyz
我知道一个解决方案,如果我使";package javanew.mypackage";在MYClass.java中,然后我可以访问Xyz.java中的文件;MyClass";Xyz.java中的文件,而不更改MyClass.java的包名。
由于类Xyz
和目录mypackage
与javanew
在同一目录中,因此不应在Xyz
类中执行import javanew.mypackage.MyClass
。相反,只在Xyz
类中执行import mypackage.MyClass
。
因此,Xyz
类应该是这样的:
import mypackage.MyClass;
public class Xyz{
public static void main(String[] args){
System.out.println("Hello");
String n="Arindam";
MyClass mc=new MyClass();
String name=mc.getName(n);
System.out.println(name);
}
}