jtl_007
2017-03-23 01:25
采纳率: 40%
浏览 2.6k
已采纳

初次使用package和import,提示“错误的类文件”

楼主初学java,在学习import关键字导入自己写的类文件时遇到如下问题:
在ShortProgram文件夹ShortProgram.java文件写下如下代码:
import a.b.c.Rectangle;
public class ShortPrograme{
public static void main (String[] args) {
Rectangle r=new Rectangle(2.1,1.2);
System.out.println(r);
}
}
在ShortProgram文件夹下,有\a\b\c这几级子文件夹,c文件夹下有Rectangle.class文件。可是在当前路径下(d:\javapro\ShortPrograme>)输入javac ShortProgram.java后,编译出现错误:

D:\javapro\ShortPrograme\ShortPrograme.java:2: 错误: 无法访问Rectangle

import a.b.c.Rectangle;

^

错误的类文件: D:\javapro\ShortPrograme\a\b\c\Rectangle.class

类文件包含错误的类: Rectangle

请删除该文件或确保该文件位于正确的类路径子目录中。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

7条回答 默认 最新

  • o枫叶o 2017-03-23 02:01
    已采纳

    Rectangle类前面有声明包名吗?
    package a.b.c

    点赞 评论
  • bug斗罗 2017-03-23 01:36

    带包编译尽量用eclipse等开发工具,如果是editplus可以参考配置editplus,控制台不太清楚

    点赞 评论
  • o枫叶o 2017-03-23 01:37

    贴一下Rectangle的代码呀。
    我猜可能是Rectangle里有编译错误?或者Rectangle不是public的?

    点赞 评论
  • jtl_007 2017-03-23 01:48

    Rectangle的代码如下,应该没有什么问题吧,用控制台编译通过了,并且生成了Rectangle.class
    public class Rectangle{
    private double length;
    private double width;
    Rectangle(double l,double w){
    length=l;
    width=w;
    }
    public double getLength(){
    return length;
    }
    public double getWidth(){
    return width;
    }
    public void setLength(double l){
    length=l;
    }
    public void setWidth(double w){
    width=w;
    }
    public void setSide(double l,double w){
    length=l;
    width=w;
    }
    public double area(){
    return length*width;
    }
    public double perimeter(){
    return 2*(length+width);
    }
    public String toString(){
    return String.format("Rectangle:length=%f, width=%f",length,width);
    }
    }

    点赞 评论
  • 休想谋害朕 2017-03-23 02:51

    可能是Rectangle类的访问权限问题还有可能是你设置classpath路径下没有Rectangle类

    点赞 评论
  • usecf 2017-03-23 03:17

    个人认为是你的环境变量设置的问题,在c盘下有相应的东西,在d盘路径不对应了

    点赞 评论
  • usecf 2017-03-23 05:43

    要么用eclipse开发工具 要不然你在控制台下就的写全路径 才能找到

    点赞 评论

相关推荐 更多相似问题