请教import和package问题(50分)

  • 主题发起人 主题发起人 pansj1229
  • 开始时间 开始时间
P

pansj1229

Unregistered / Unconfirmed
GUEST, unregistred user!
我的系统为win2000,jdk1.4
classpath=.;d:/;d:/jdk1.4/lib/dt.jar;d:/jdk1.4/lib/dt.jar;
现在建两个个类,一个名为MyClass,另一个为UseClass;
package mypackage
public class MyClass{
.......
}

import mypackage.*;
public class UseClass
{
MyClass p=new MyClass();
..........
}
两个.java原文件都在e:/src下
我用javac -d e: e:/src/MyClass.java
在e:/mypakage下生成了一个MyClass.class文件.
我再用javac -classpath e:/mypackage e:/src/UsePackage编译,发生以下错误,请问是怎么回事。
我的系统为win2000,jdk1.4
classpath=.;d:/;d:/jdk1.4/lib/dt.jar;d:/jdk1.4/lib/dt.jar;
现在建两个个类,一个名为MyClass,另一个为UseClass;
package mypackage
public class MyClass{
.......
}

import mypackage.*;
public class UseClass
{
MyClass p=new MyClass();
..........
}
两个.java原文件都在e:/src下
我用javac -d e: e:/src/MyClass.java
在e:/mypakage下生成了一个MyClass.class文件.
我再用javac -classpath e:/mypackage e:/src/UsePackage编译,
发生以下错误,请问是怎么回事。
package mypackagedo
es not exist
import mypackage.*;
bad class file: d:/mypackage/MyClass.class
class file contains wrong class: mypackage.MyClass
 
〉〉bad class file: d:/mypackage/MyClass.class
〉〉class file contains wrong class: mypackage.MyClass
怎么跑到D盘上了,不是在E盘上的mypackage下吗??? 你的JDK是不是安装在
D盘
 
<转贴>
给自己的类打包:
在打包之前我们最好先定义一下classpath这个环境变量,定义好这个对于以后的操作会十分的简单.
定义classpath环境变量的具体操作如下:
********************************************************************
举例说明:
在我机子上,我的jdk安装在D盘,我在E盘建立了一个JavaPackage的文件目录,我的classpath就这样
设置了(系统为windows2000)
-------------------------------------------------------------------------
|变 量| 值
-------------------------------------------------------------------------
|CLASSPATH| .;D:/jdk/lib;E:/JavaPackage
-------------------------------------------------------------------------
如果我用的是Linux系统(假设用root登陆),我的JDK安装在/usr的目录下,我又在/usr的目录下建立了一个文件
夹叫JavaPackage,那么你应该在 /.bash_profile里这样设置
--------------------------------------------------------------------------------
export JAVA_HOME=/urs/jdk
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools/jar:/usr/JavaPackage
--------------------------------------------------------------------------------
好了,具体怎样设置我已经说的很详细了,PATH环境变量我想大家都会设置了吧~这里就不细说了,下面继续说我
们的包应该怎么打起来.
********************************************************************
我们的程序如下,三个程序都写在E:/下:
+++++++++++++++++ Shape.java +++++++++++++++++++++
package Shapes;
public abstract class Shape
{
}
++++++++++++++++ Square.java +++++++++++++++++++++
package Shapes;
public class Square extends Shape
{
}

程序只写了框架,这也是为了节省大家读文章的时间,感兴趣的可以自行加上代码实验一下.
我们进行编译:
****************************************
javac -d "E:/JavaPackage" Shape.java
****************************************
这句的'-d'是为了说明编译出的Shape.class文件放在哪个目录下,'-d'后面的参数是说明的根目录是什么.编译
好了之后,我们进入E:/JavaPackage的目录看一下,会发现出现了一个新的文件夹Shapes.你会大喊,这不是我定
义的包嘛~~对啊,Shapes文件夹里还有一个Shape.class的文件呢~~到现在我想你会使用package来打包了~我们
有始有终把Square.java 也编译了吧,如下:
****************************************
javac -d "E:/JavaPackage" Square.java
****************************************
一切OK了
3, 使用包:
++++++++++++++++ Draw.java ++++++++++++++++++++++++
import Shapes.*;
public class Draw
{
public static void main(String[] args)
{
}
}
关键在于编译,编译过程如下:
javac -classpath "E:/JavaPackage" Draw.java
这样在Draw中就可以使用Shapes包中给的类了
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部