有如下一个类:
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的一样

解决方案 »

  1.   

    显然的,根本没真正的package,楼主package到哪里里呢?
    MyClass放到ptest文件夹下啊
      

  2.   

    to:believefym(暮色,miss,迷失,miss) 
    编译完MyClass.java后MyClass.class确实已经放到ptest文件夹下了。但是还是出现上面的错误我用” “javac -d . MyClass.java”后再用“java CallMyClass.java”也不行!
      

  3.   

    假设经编译后 MyClass.class 是这样放的: e:\java\pest\MyClass.class 。  那么你应在classpath中加入: .;e:\java;
    这样设置肯定没有问题。
      

  4.   

    d:\mys\MyClass.java
    d:\mys\CallMyClass.java
    d:\mys\ptest\MyClass.class
      

  5.   

    把CallMyClass.class放在Ptest下面也不行?确定你的classpath里有--->“.;” ?
    你放在里面然后import Myclass;
      

  6.   

    TO:believefym(暮色,miss,迷失,miss) 
    用import ptest.MyClass;是可以的关键是我想知道为什么用import ptest.*;就不可以了?
      

  7.   

    楼主的MyClass.java在这个目录d:\mys\MyClass.java下能编译通过?你应该先在d:\mys建个文件夹ptest然后MyClass.java的目录应该是d:\mys\ptest\MyClass.java
      

  8.   

    to: pope_tju(飞刀小虫)
    呵呵,你的说法是不对的。用javac -d . MyClass.java可以自动创建目录的不需要手工创建目录
      

  9.   

    你将MyClass.java也放到ptest包里面。试试
      

  10.   

    还是CLASSPATH的概念没有搞清楚
      

  11.   

    to:Tomcat4(Tom) 
    能说得具体点吗?请指教。
      

  12.   

    to:Tomcat4(Tom) 还是CLASSPATH的概念没有搞清楚
    我也想知道,呵呵。
    感觉楼主没什么问题,请确认一下d:\mys\下无MyClass.class,试试吧
      

  13.   

    to:superslash(我想知道在csdn上到底有谁的id号比我还长,我的肯定是最长的一定是的!!) 
    最后编译后的目录结构如下:
    d:\mys\MyClass.java
    d:\mys\CallMyClass.java
    d:\mys\ptest\MyClass.class
    应该不是目录结构的问题,而且我也在CLASSPATH中加入了“d:\mys”这个目录了
      

  14.   

    我想楼主可以通过两个方法解决这个问题:
    1.给CallMyClass也定义一个包;
    2.将CallMyClass.java保存在类路径d:\mys目录下原因我回头再茬茬,然后分析一下
      

  15.   

    D:\mys\MyClass.java
    把这个文件放别的地方去,或者放到D:\mys\test下!
    不要放在你编译的目录,因为编译器会首先查找当前目录,他先找到了MyClass.java就直接用他了,然而它不在test\下!
    你也可以用import ptest.MyClass来引入类来解决
      

  16.   

    我也遇到同样的问题用import ptest.MyClass;可以
    用import ptest.*;就不可以了为什么?