有如下一个类:
package ptest;
public class MyClass
{
public int i=0;
}
主类如下:
import ptest.*;
public class CallMyClass
{
public static void main(String s[])
{
MyClass m=new MyClass();
m.i=100;
System.out.print(m.i);
}
}
用JCREATOR编译第一个类时通过,编译第二个类时提示如下:
D:\mys\CallMyClass.java:6: cannot access MyClass
bad class file: D:\mys\MyClass.java
file does not contain class MyClass
Please remove or make sure it appears in the correct subdirectory of the classpath.
MyClass m=new MyClass();
^
1 error
在JCREATOR的jdk profiles配置中的classpath中我也已经加入了“d:\mys”
但若我把“import ptest.*;”改为“import ptest.MyClass;”则编译能通过运行也正常。
在DOS命令提示窗口我也试验过了,结果和JCREATOR的一样
package ptest;
public class MyClass
{
public int i=0;
}
主类如下:
import ptest.*;
public class CallMyClass
{
public static void main(String s[])
{
MyClass m=new MyClass();
m.i=100;
System.out.print(m.i);
}
}
用JCREATOR编译第一个类时通过,编译第二个类时提示如下:
D:\mys\CallMyClass.java:6: cannot access MyClass
bad class file: D:\mys\MyClass.java
file does not contain class MyClass
Please remove or make sure it appears in the correct subdirectory of the classpath.
MyClass m=new MyClass();
^
1 error
在JCREATOR的jdk profiles配置中的classpath中我也已经加入了“d:\mys”
但若我把“import ptest.*;”改为“import ptest.MyClass;”则编译能通过运行也正常。
在DOS命令提示窗口我也试验过了,结果和JCREATOR的一样
MyClass放到ptest文件夹下啊
编译完MyClass.java后MyClass.class确实已经放到ptest文件夹下了。但是还是出现上面的错误我用” “javac -d . MyClass.java”后再用“java CallMyClass.java”也不行!
这样设置肯定没有问题。
d:\mys\CallMyClass.java
d:\mys\ptest\MyClass.class
你放在里面然后import Myclass;
用import ptest.MyClass;是可以的关键是我想知道为什么用import ptest.*;就不可以了?
呵呵,你的说法是不对的。用javac -d . MyClass.java可以自动创建目录的不需要手工创建目录
能说得具体点吗?请指教。
我也想知道,呵呵。
感觉楼主没什么问题,请确认一下d:\mys\下无MyClass.class,试试吧
最后编译后的目录结构如下:
d:\mys\MyClass.java
d:\mys\CallMyClass.java
d:\mys\ptest\MyClass.class
应该不是目录结构的问题,而且我也在CLASSPATH中加入了“d:\mys”这个目录了
1.给CallMyClass也定义一个包;
2.将CallMyClass.java保存在类路径d:\mys目录下原因我回头再茬茬,然后分析一下
把这个文件放别的地方去,或者放到D:\mys\test下!
不要放在你编译的目录,因为编译器会首先查找当前目录,他先找到了MyClass.java就直接用他了,然而它不在test\下!
你也可以用import ptest.MyClass来引入类来解决
用import ptest.*;就不可以了为什么?